Strings splitten/Datei einlesen

Von: , Frage gestellt am Do, 23. Nov 2000

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 = <LOG>;
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

4 Antworten zu dieser Frage

  1. Antwort von nach einer Stunde hilfreich
    Re: Strings splitten/Datei einlesen

    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 ;-) 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 = <LOG>;
    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 ;-) Patrick
    Greenberet

    • Antwort von nach einer Stunde hilfreich
      Re^2: Strings splitten/Datei einlesen

      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

  2. Antwort von nach 14 Stunden hilfreich
    Re: Strings splitten/Datei einlesen

    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

    • Antwort von nach 18 Stunden hilfreich
      Re^2: Strings splitten/Datei einlesen

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

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!