String splitten und als Array speichern

Von: , Frage gestellt am Mo, 29. Aug 2011

Hallo,
Ich habe eine große Liste an Wörtern. Diese möchte ich gerne in meinem Programm als Array gespeichert haben. Nun ist es mir etwas kompliziert jedes Wort einzelnd in das Array zu speichern (ca. 10.000 Wörter). Allerdings ist nach jedem Wort ein Zeilenumbruch und ich dachte mir, das man diesen dazu nutzen könnte den großen string in viele strings zu splitten und als array abzuspeichern.

Nur, wie geht das?

Gruß
GURKE

Delphi 5-Nutzer

3 Antworten zu dieser Frage

  1. Antwort von nach 3 Stunden 0 hilfreich
    Re: String splitten und als Array speichern

    Hi,

    was meinst Du mit "Zeilenumbruch" - liegen die in einer Datei vor? Wenn ja, dann ist das relativ einfach:

    [code]
    var osl:TStringList;
    iIndex:Integer;
    begin
    oSL:=TStringList.Create;
    try
    oSL.LoadFromFile(<Datei>);
    for i:=0 to oSL.Count-1 do
    <array>[iIndex]:=oSL.Strings[iIndex];
    finally
    FreeAndNil(oSL);
    end;

    [/code]


    Alternativ kannst DU anstelle des Arrays auch gleich die TStringList verwenden...

    Grüße

  2. Antwort von nach 3 Stunden 1 hilfreich
    Re: String splitten und als Array speichern

    Hi Gurke

    So wie das klingt, liegten die Wörter in einer Datei vor. In diesem Fall ist es relativ einfach, die Daten einzulesen in ein Array.

    procedure TForm1.Button1Click(Sender: TObject);
    const
      MaxWords=10000;     {Maximale Anzahl Einträge. Muss aber dann im privat oder plublic Bereich definiert werden!}
    var
      tf:TextFile;
      s:string;
      ix:longint;
      sx:array[1..MaxWords] of String;    {Das Array mit den Text-Daten. Muss aber dann im privat oder plublic Bereich definiert werden!}
    begin
      FileMode:=0;   {Nur lesezugriff!}
      AssignFile(tf,'text.txt');
      Reset(tf);
      ix:=0;
      while eof(tf)=false do
      begin
        Readln(tf, S);
        if (length(s) > 1) and (ix < MaxWords) then
        begin
          inc(ix);
          sx[ix]:=s;
        end;
      end;
      CloseFile(tf);
      FileMode:=2;
    end;


    Ich habe mal angenommen, dass die Datei mit dem Wörtern in der Datei 'text.txt' liegen und sich diese im Programm-Ordner der Applikation befindet. Sonst einfach Dateinamen im Programmcode anpassen.

    Gruss
    Sam99

  3. Antwort von nach 9 Stunden 0 hilfreich
    Re: String splitten und als Array speichern

    Danke für eure Antworten!
    Komme leider erst am Donnerstag dazu das auszuprobieren.

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!