Strings splitten/Datei einlesen

Hi Leute!

Ich möchte gerne eine Datei laden, die folgende Einträge hat:

text1|text2|text3

Mein 1. Problem: Wie kann ich jede Zeile einlesen (z.B. in einem Aray wie in Perl)? Ich weiss vorher nicht wie viele Zeilen die Datei hat.
Mein2. Problem: Nun habe ich die Zeilen in einem Aray. Nun möchte ich aber noch text1, text2 und text3 in jeweils einzelne Variablen einlesen (also den String in 3 Variable splitte). In Perl würde das so aussehen:

open(FILE, „datei.txt“);
@entries = ;
close(LOG);
foreach $curentry (@entries) {
($name, $value) = split(/|/, $curentry);
}

In Vb habe ich leider keine Ahnung wie ich das Anstellen könnte.

Für Hilfe, vielen Dank!
Patrick

Hi Leute!

Hi

Ich möchte gerne eine Datei laden, die folgende Einträge hat:

text1|text2|text3

Das hab ich hier vor längerer Zeit auch mal gefragt :wink:

Mein 1. Problem: Wie kann ich jede Zeile einlesen (z.B. in
einem Aray wie in Perl)? Ich weiss vorher nicht wie viele
Zeilen die Datei hat.

Du brauchst die Scripting Runtime. Also Projekt -> Verweise -> Microsoft Scripting Runtime

Danach definierst du:

Set a = CreateObject(„Scripting.FilesystemObject“)

danach musst du mit dem FilesystemObject die Datei öffnen:

a.OpenTextFile („Der Pfad deiner Textdatei“)

danach ist das ganze wie ein Textstream zu behandeln also in deinem Fall

While a.AtEndOfStream = False
variable = variable & a.ReadLine
Wend

(keine Ahnung wie du das jetzt auslesen möchtest, aber die Schleife erzeugt eine Textwurscht Zeile an Zeile)

jedenfalls liest a.Readline die aktuelle Zeile und springt danach eine weiter

Mein2. Problem: Nun habe ich die Zeilen in einem Aray. Nun
möchte ich aber noch text1, text2 und text3 in jeweils
einzelne Variablen einlesen (also den String in 3 Variable
splitte). In Perl würde das so aussehen:

open(FILE, „datei.txt“);
@entries = ;
close(LOG);
foreach $curentry (@entries) {
($name, $value) = split(/|/, $curentry);
}

In Vb habe ich leider keine Ahnung wie ich das Anstellen
könnte.

da gibts mehrere Möglichkeiten… Ich kenne mich in Perl nicht so aus, aber sehe ich das richtig das es da Trennzeichen gibt?
(also „text1,text2,text3“ oder „text1/text2/text3“)

dann gibt es (vorrausgesetzt du hast VB6) eine fast analoge (wenn ich das richtig entziffet habe) Variante zu Perl nämlich:

aufgetrennt=Split(„text“,Trennzeichen)

aufgetrennt ist dann ein array mit allen Einzelstrings.

Falls du vb6 nich besitzt hier die die wichtigsten Stringbefehle (Verwendung kannst ja in der Objektbibliothek nachschlagen oder nochmal fragen)

Left,Right,Mid,Len,Instr

ab vb6: Filter, InstrRev, Join, Replace, Split, StrReverse

Für Hilfe, vielen Dank!

Falls ich geholfen habe, gern geschehn :wink:

Patrick

Greenberet

Hi!
Vielen Dank für deine Antwort. Ich habe den Code zwar noch nicht ausprobiert, denke aber, dass wird meine Probleme lösen. Ich habe leider nur VB5. Aber ich glaube man kann den VB5-Code der Split-Funktion auch bei Microsoft bekommen. Werde mich dort mal umschauen…

Grüße
Patrick

Schau Dir mal die Funktionen Open,close, lof, read, put, get, line input etc. an.

Du kannst mit reinem VB die Datei einlesen und danach das Eingelesene in Arrays packen.

Michael

Danke, habe bereits eine Lösung mit eben diesen Methoden gefunden. Die Split Funktion kann man überings ganz einfach in VB5 simulieren…