Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

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)

Delphi-Narr 23. Okt 2009 20:06


Wörterbuch Datei
 
Hi, ich wusste nicht genau, wohin mit diesem Beitrag...

Also ich habe mit Delphi 5 einen Vokabektrainer programmiert. Beim Start greift dieser auf eine Datei zu, in der die abzufragenden Vokabeln gespeichert sind.
Gespeichert wird folgendermaßen:

DeutschEnglischDeutsch.txt:



Deutsch1
Englisch1
Deutsch2
Englisch2
usw.

Jetzt meine Frage:
Weiß jemand, wo man eine solche Datei herunterladen kann? Kann von mir aus auch so sein:

Deutsch1#Englisch1

Deutsch1/Englisch1 etc.

Hauptsache nicht

Deutsch1::Englisch1Deutsch2::Englisch2

So eine hab ich gefunden, aber die auseinander zu nehmen ist ein bisschen zu aufwendig...

Liebe Grüße!

himitsu 23. Okt 2009 20:08

Re: Wörterbuch Datei
 
für
Delphi-Quellcode:
Deutsch1=Englisch1
Deutsch2=Englisch2 
...
kann man ganz einfach eine TStringList nehmen
.Name und .Value

auch für diese
Delphi-Quellcode:
Deutsch1
Englisch1
Deutsch2
Englisch2
ist diese zu gebrauchen
gerade Indize = Deutsch
ungerade Indize (deutscher Index + 1) = Englisch

Meflin 23. Okt 2009 20:15

Re: Wörterbuch Datei
 
Zitat:

Zitat von Delphi-Narr
Deutsch1::Englisch1Deutsch2::Englisch2

So eine hab ich gefunden, aber die auseinander zu nehmen ist ein bisschen zu aufwendig...

Guck dir die mal in nem HexEditor oder so an. Da MUSS ja irgendein Trennzeichen dazwischen sein. Wenn du das ermittelt hast, lässt sich das ganze ja recht einfach in dein bevorzugtes Format umwandeln ;)

Delphi-Narr 24. Okt 2009 09:44

Re: Wörterbuch Datei
 
@himitsu: Die benutze ich schon. Der Benutzer kann auch eine eigene Datei erstellen usw. Nur habe ich keine Lust die Dateien alle selber zu machen. Prinzipiell klappt das ja.

Ich guck mal mit dem Hex nach...

Tryer 24. Okt 2009 10:14

Re: Wörterbuch Datei
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  Caption :='';
  for i := 1 to Pred(Length(Edit1.Text)) do
    if (Edit1.Text[i] > 'Z') and (Edit1.Text[i+1] < 'a') then
      Caption := IntToStr(i+1);
end;
Falls da kein Trennzeichen zwischen steht:
Großbuchstabe folgt direkt auf einen Kleinbuchstaben -> hier fängt neuer Begriff an (unwahrscheinlich weil unsauber, aber nicht ausgeschlossen). Oder stehen da wirklich Zahlen mit in der Datei? Schwierig zu beurteilen ohne einen Ausschnitt der echten Datei zu sehen.

himitsu 24. Okt 2009 10:18

Re: Wörterbuch Datei
 
Vermutlich hatte er die Datei nur mit'm Notepad geöffnet und in der Datei sind nur Linux-Umbrüche (#10) drin, welcher der Notepad (und auch andere "Editoren") nicht versteht.

Medium 24. Okt 2009 10:55

Re: Wörterbuch Datei
 
Ausserdem soll es wohl im Eingangsposting "herunterladen" und nicht "laden" heissen. Einfach mal nicht bedeutungsverändernd abkürzen erspart Missverständnisse wie im drauf folgenden von Himi.

Delphi-Narr 25. Okt 2009 16:07

Re: Wörterbuch Datei
 
Nee, Notepad geht, hatte noch einen anderen Editor benutzt

Hab jetzt also Deutsch::Englisch

Jetzt möchte ich mir ein Programm machen, dass diese Datei einmal komplett umschreibt.


Delphi-Quellcode:
var
i:integer;//Zählt die Zeilen
i2:integer;//Zählt in den Zeilen von Zeichen zu Zeichen
SL:TStringlist;

begin
     SL := TStringList.Create;
         Try
      Try
        SL.LoadFromFile('C:\Users\Alt.txt');//Datei wird in die Liste geladen
        For i := 1 to SL.Count-1 do //Solange, bis das Ende der Liste erreicht ist
            begin
                 for i2:=1 to {Länge der aktuellen Zeile i} do
                    begin
                         if {Das i2-te Zeichen aus der aktuellen Zeile}=(':') then
                         begin
                              {Ersetze das Leerzeichen davor, das aktuelle Zeichen, das Zeichen danach
                              (auch ':') und das Leerzeichen danach durch einen Zeilenumbruch
                               Aus
                               Hallo :: Hello
                               soll werden
                               Hallo
                               hello}
                         end;
         gewisse ends und finallys...

        SL.SaveToFile('C:\Users\Neu.txt');

end;

DeddyH 25. Okt 2009 16:14

Re: Wörterbuch Datei
 
Da wäre StringReplace eine einfache Option.
Delphi-Quellcode:
var
  SL:TStringlist;
begin
  if FileExists('C:\Users\Alt.txt') then
    begin
      SL := TStringList.Create;
      try
        SL.LoadFromFile('C:\Users\Alt.txt');//Datei wird in die Liste geladen
        SL.Text := StringReplace(SL.Text,' :: ',sLineBreak,[rfReplaceAll]);
        SL.SaveToFile('C:\Users\Neu.txt');
      finally
        SL.Free;
      end;
    end;
end;

himitsu 25. Okt 2009 16:16

Re: Wörterbuch Datei
 
Soviele Kommentare sind nicht grad übersichlich und verbessern die Lesbarkeit des Codes nicht wirklich


Delphi-Quellcode:
for i2:=1 to {Länge der aktuellen Zeile i} do
  begin
    if {Das i2-te Zeichen aus der aktuellen Zeile}=(':') then
Kennst du schon Delphi-Referenz durchsuchenPos?


Und warum läßt du diese Datei nicht einfach so, wie sie ist?
Macht sich Einfacher, wenn du sie z.B. irgendwann mal durch 'ne neuere Version ersetzt.
Delphi-Quellcode:
SL := TStringList.Create;
SL.LoadFromFile('C:\Users\Alt.txt');
SL.Text := StringReplace(SL.Text, ' :: ', '=', [rfReplaceAll]);
So und hast du alles ganz praktisch in der Stringliste
und kannst via SL.Name[i] (deutsch) und SL.Value[i] (englisch) drauf zugreifen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:51 Uhr.
Seite 1 von 5  1 23     Letzte »    

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