Ich habe eine Textdatei mit Name:Rufnummer in einer Zeile.Diese muß ich jetzt so umstricken, das sie in folgendes Format kommt: Name (muß 24 Zeichen lang sein, also ev. mit Leerzeichen auffüllen)Telefonnummer (muß auch wieder 24 Zeichen lang sein also wieder auffüllen mit Leerzeichen)danach Name2 Rufnummer2 usw.
Wie krieg ich das hin? Bin für jede Hilfe dankbar.
Hallo Newbie.
Verwendest Du die Datei als „Datenbank“, die von einem Programm eingelesen wird? (mit ‚Open For Input‘ oder so?)
Falls ja, dann sollte es helfen, die Variablen, die die Werte enthalten sollen, folgendermaßen zu deklarieren:
Dim Namen As String \* 24
Dim Rufnummer As String \* 24
(Bitte darauf achten, niemals „Name“ als Variablennamen zu verwenden)
Viele Grüße
Carsten
Danke für die Antwort. Sowas in der Art habe ich schon mal hier im Artikel /theme161/article1297560.html gefunden. Mein Problem ist aber das ich keinen Bezug zu Name und Rufnummer habe. Die Datei sieht so aus:
Name Rufnummer
xxxxx:xxxxx
xxxxx:xxxxx
Ich muß also irgendwie noch diesen einen String pro Zeile in zwei teilen und danach diese Dim x as String * 24 Formatierung zuweisen.
Genau da liegt mein Problem.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Newbie.
Ich habe hier mal die prizipielle Vorgehensweise programmiert. Dieses Beispiel kann Du ausprobieren, indem Du ein Formular mit zwei Commandbuttons bestückst und den folgenden Code eingibst:
Private MsgString As String
Private GanzerString()
Private GetrennterString()
Private Namen As String \* 24
Private Rufnummer As String \* 24
Private Sub Command1\_Click()
Open App.Path & "\Test.txt" For Output As #1
For a = 1 To 20
Write #1, Chr(a + 64) & Chr(a + 64) & Chr(a + 64) & Chr(a + 64) & Chr(a + 64) & " " & a & a & a & a & a & a
Next
Close #1
End Sub
Private Sub Command2\_Click()
Dim tmpEintrag As Long
Dim Eintraege As Long
Open App.Path & "\Test.txt" For Input As #1
Do Until EOF(1)
tmpEintrag = tmpEintrag + 1
ReDim Preserve GanzerString(1 To tmpEintrag)
Input #1, GanzerString(tmpEintrag)
Loop
ReDim GetrennterString(1 To 2, 1 To tmpEintrag)
For tmpEintrag = 1 To tmpEintrag
Namen = Mid(GanzerString(tmpEintrag), 1, InStr(1, GanzerString(tmpEintrag), " ", vbTextCompare) - 1)
Rufnummer = Mid(GanzerString(tmpEintrag), InStr(1, GanzerString(tmpEintrag), " ", vbTextCompare) + 1, Len(GanzerString(tmpEintrag)))
GetrennterString(1, tmpEintrag) = Namen
GetrennterString(2, tmpEintrag) = Rufnummer
Next
Close #1
For tmpEintrag = 1 To UBound(GetrennterString, 2)
MsgString = MsgString & GetrennterString(1, tmpEintrag) & vbTab & GetrennterString(2, tmpEintrag) & vbCr
Next
MsgBox MsgString
End Sub
Command1 generiert eine Test-Textdatei. Mit Command2 wird sie eingelesen. Wenn in der Datei ein Doppelpunkt als Trennung zwischen Name und Rufnummer steht, dann mußt Du das in der InStr-Funktion noch anpassen, dort wird momentan ein Leerzeichen als Trennung abgefragt.
Viele Grüße
Carsten