Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Wörterbuch Datei (https://www.delphipraxis.net/142209-woerterbuch-datei.html)

Meflin 25. Okt 2009 18:02

Re: Wörterbuch Datei
 
Zitat:

Zitat von Delphi-Narr
Also man kann nicht für SL.text Sl[i] einsetzen, sodass sich das nur auf die eine Zeile bezieht?

Klar kannst du eine StringList auch zeilenweise durchgehen...

Delphi-Narr 25. Okt 2009 18:07

Re: Wörterbuch Datei
 
Delphi-Quellcode:
 var
  SL:TStringlist;
  i:integer;
begin
  if FileExists(vOrt) then
    begin
      SL := TStringList.Create;
      {ProgressBar1.Step:=SL.Count-1;}
      try
        SL.LoadFromFile(vOrt);//Datei wird in die Liste geladen
        for i:=1 to SL.Count-1 do
        begin
        SL[i] := StringReplace(SL.Text,' :: ',sLineBreak,[rfReplaceAll]);
        Progressbar1.StepBy(1);
        end;
        SL.SaveToFile(vZiel);
      finally
        SL.Free;
      end;
    end;
end;
So? Wenn ich das so mache (Steps der ProgressBar sind auf 100) Passiert nichts. Ich lad mal eine andere Datei da rein, die nur einen Ausschnitt davon enthält


Edit:

Aus:

[wir/sie/Sie] passten :: [we/they/you] were suitable
[wir/sie/Sie] rieben :: [we/they/you] rubbed
[wir/sie/Sie] sangen :: [we/they/you] sang
[wir/sie/Sie] saßen :: [we/they/you] sat
[wir/sie/Sie] schrieben :: [we/they/you] wrote
[wir/sie/Sie] schwammen :: [we/they/you] swam
[wir/sie/Sie] schwitzen :: [we/they/you] are transpiring [perspiring, sweating]
[wir/sie/Sie] sind / waren gewesen :: [we/they/you] have / had been
[wir/sie/Sie] sind :: [we/they/you] are
[wir/sie/Sie] sind Bankrott erklärt worden :: [we/they/you] have been adjudged bankrupt
[wir/sie/Sie] sind Bankrott erklärt worden :: [we/they/you] have been declared bankrupt
[wir/sie/Sie] sind berechtigt zu :: [we/they/you] shall be entitled to




Wird (Die ersten 79 Zeilen:)

[wir/sie/Sie] passten :: [we/they/you] were suitable
[wir/sie/Sie] passten
[we/they/you] were suitable
[wir/sie/Sie] rieben
[we/they/you] rubbed
[wir/sie/Sie] sangen
[we/they/you] sang
[wir/sie/Sie] saßen
[we/they/you] sat
[wir/sie/Sie] schrieben
[we/they/you] wrote
[wir/sie/Sie] schwammen
[we/they/you] swam
[wir/sie/Sie] schwitzen
[we/they/you] are transpiring [perspiring, sweating]
[wir/sie/Sie] sind / waren gewesen
[we/they/you] have / had been
[wir/sie/Sie] sind
[we/they/you] are
[wir/sie/Sie] sind Bankrott erklärt worden
[we/they/you] have been adjudged bankrupt
[wir/sie/Sie] sind Bankrott erklärt worden
[we/they/you] have been declared bankrupt
[wir/sie/Sie] sind berechtigt zu
[we/they/you] shall be entitled to

[wir/sie/Sie] passten
[we/they/you] were suitable
[wir/sie/Sie] passten
[we/they/you] were suitable
[wir/sie/Sie] rieben
[we/they/you] rubbed
[wir/sie/Sie] sangen
[we/they/you] sang
[wir/sie/Sie] saßen
[we/they/you] sat
[wir/sie/Sie] schrieben
[we/they/you] wrote
[wir/sie/Sie] schwammen
[we/they/you] swam
[wir/sie/Sie] schwitzen
[we/they/you] are transpiring [perspiring, sweating]
[wir/sie/Sie] sind / waren gewesen
[we/they/you] have / had been
[wir/sie/Sie] sind
[we/they/you] are
[wir/sie/Sie] sind Bankrott erklärt worden
[we/they/you] have been adjudged bankrupt
[wir/sie/Sie] sind Bankrott erklärt worden
[we/they/you] have been declared bankrupt
[wir/sie/Sie] sind berechtigt zu
[we/they/you] shall be entitled to

[wir/sie/Sie] sangen
[we/they/you] sang
[wir/sie/Sie] saßen
[we/they/you] sat
[wir/sie/Sie] schrieben
[we/they/you] wrote
[wir/sie/Sie] schwammen
[we/they/you] swam
[wir/sie/Sie] schwitzen
[we/they/you] are transpiring [perspiring, sweating]
[wir/sie/Sie] sind / waren gewesen
[we/they/you] have / had been
[wir/sie/Sie] sind
[we/they/you] are
[wir/sie/Sie] sind Bankrott erklärt worden
[we/they/you] have been adjudged bankrupt
[wir/sie/Sie] sind Bankrott erklärt worden
[we/they/you] have been declared bankrupt
[wir/sie/Sie] sind berechtigt zu
[we/they/you] shall be entitled to

[wir/sie/Sie] passten
[we/they/you] were suitable
[wir/sie/Sie] passten
[we/they/you] were suitable
[wir/sie/Sie] rieben


Die ganze Datei hat ca. 50000 Zeilen, in 5-10 Sekunden erstellt... Die sollte aber eigentlich nur 24 haben.

DeddyH 25. Okt 2009 18:11

Re: Wörterbuch Datei
 
Zitat:

Delphi-Quellcode:
SL[i] := StringReplace(SL.Text,' :: ',sLineBreak,[rfReplaceAll]);

:shock: Schau mal, was Du hier machst.

Delphi-Narr 25. Okt 2009 18:14

Re: Wörterbuch Datei
 
Oh, da muss ich wohl das zweite .Text auch noch ersetzen...

DeddyH 25. Okt 2009 18:16

Re: Wörterbuch Datei
 
Das macht auf jeden Fall Sinn, sonst wird die Datei "etwas" größer :lol:

Delphi-Narr 25. Okt 2009 18:17

Re: Wörterbuch Datei
 
Jo, und am Anfang muss ich i=0 setzen.
Jetzt sollte es klappen, ich guck mal was jetzt mit der großen Datei passiert


Edit:

So ich würd mal sagen, dein erster Code hatte auch irgendeinen Fehler...
5 Sekunden und das Teil war durch... 1,5 Mio Zeilen^^

DeddyH 25. Okt 2009 18:24

Re: Wörterbuch Datei
 
An einen Fehler glaub ich nicht, aber bei so großen Datenmengen ist StringReplace wohl nicht das Wahre. Stimmt Deine Datei denn jetzt auch?

Delphi-Narr 25. Okt 2009 18:27

Re: Wörterbuch Datei
 
Ja, ist korrekt.

Wenn ich jetzt noch ein Wörterbuch machen will, also mit Suche, wie mach ich das?

Ich Hab ein Editfeld und OnChange soll nach der ersten Zeile gesucht werden, die diese Zeichenfolge enthält.
Also wenn man Autob, so soll dann direkt auch Autobus gefunden werden... Das ist mit IndexOf ja nicht möglich...


Es wär auch ganz schön, wenn man Links und rechts jeweils eine Listbox hat, die die passenden Ergebnisse anzeigt (links) und
auf gleicher Höhe/gleiche Zeile die jeweilige Übersetzung (rechts).
Oben jeweils ein Suchfenster, welches in den Deutschen bzw. Englischen Einträgen sucht. Also für Deutsch die ungraden Zeilen und für Englisch die graden...

DeddyH 25. Okt 2009 18:30

Re: Wörterbuch Datei
 
Geh doch einfach in einer Schleife durch und schau, ob die aktuelle Zeile mit der gesuchten Zeichenfolge beginnt. Viel anders macht IndexOf das auch nicht, außer dass die komplette Zeichenfolge verglichen wird.

Delphi-Narr 25. Okt 2009 18:35

Re: Wörterbuch Datei
 
Hab oben noch eine Änderung gemacht...

Aber wenn man jetzt nach walk sucht, findet er nichts, weil die Zeile mit (to) beginnt...


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:52 Uhr.
Seite 3 von 5     123 45      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz