Autor Beitrag
t3h
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 20



BeitragVerfasst: Fr 12.10.07 13:13 
Hallo zusammen ich hab die SuFu schon benutzt, allerdings nichts gefunden das ich wirklich gebrauchen konnte.

Ich möchte ein Programm schreiben das alle lateinische Wörter die ich aus einer .txt-Datei auslese in einem TStringList angezeigt werden die Datenstruktur der .txt-Datei sieht so aus

Fremdwort1 Bedeutung1 Stammform, Deklination etc.
Fremdwort2 Bedeutung2 Stammform, Deklination etc.

wenn man nun ein Element der der TSTringlist anklickt sollen die entsprechende Bedeutung angezeigt werden.

Später möchte ich noch eine Suchfunktion einbauen bzw eine Funktion die zufällig Wörter raussucht.


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Fr 12.10.2007 um 14:31
Wolle92
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1296

Windows Vista Home Premium
Delphi 7 PE, Delphi 7 Portable, bald C++ & DirectX
BeitragVerfasst: Fr 12.10.07 14:14 
also, die Struktur, die du benutzt eignet sich nicht so gut (meine ist auch nicht die beste, aber einfacher einzulesen)...
Mach es lieber so:

Fremdwort1
Bedeutung1
Stammform, Deklination etc. ?Soll das in eine Zeile, oder auch aufgeteilt?
Dann gehts weiter...

Dann kannst du mir ReadLn Zeile für Zeile in verschiedene Bereiche einlesen...
Ich habe bei meinem VokabelTrainer zwei Arrays, einen fürs Fremdwort, einen für die Übersetzung und dann sage ich einfach immer
ausblenden Delphi-Quelltext
1:
2:
ReadLn(f, array1[i]);
ReadLn(f, array2[i]);

OK, ist etwas komplizierter, da die Datei erst noch dekodiert wird, aber nach dem Prinzip...
t3h Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 20



BeitragVerfasst: Fr 12.10.07 14:32 
Titel: Leider
Leider kann ich mir die Struktur nicht aussuchen.
Die Stammformen etc soll alles in die gleiche Zeile
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 12.10.07 14:35 
Titel: Re: Leider
Moin und :welcome: im Forum!

user profile icont3h hat folgendes geschrieben:
Leider kann ich mir die Struktur nicht aussuchen.
Die Stammformen etc soll alles in die gleiche Zeile
Hast du ein konkretes Beispiel? Dann zeig uns doch mal ein paar Zeilen oder häng die Datei hier als Anhang rein. So ist es wesentlich leichter zu erklären, wie man das vernünftig als Liste in Delphi abbilden kann. :idea: ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
t3h Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 20



BeitragVerfasst: Fr 12.10.07 15:08 
Titel: klar
im anhang ist die datei
Einloggen, um Attachments anzusehen!
zuma
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: Fr 12.10.07 15:10 
wie wärs so:
1)
Type definieren
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
type TTest = Class(TObject)
  Fremdwort  : String;
  Bedeutung  : String;
  ...
end;

2)
in die Stringlist einlesen etwa so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var  fw : TTest;
begin
 aa := TTest.Create;
 aa.Fremdwort := 'Rödelprömp';
 aa.bedeutung := 'Blödsinn';
 sl.AddObject('Anzeigestring', TObject(aa));
...


3)
beim auslesen dann
ausblenden Delphi-Quelltext
1:
2:
3:
4:
var  fw : TTest;
begin
fw := Stringlist.items.objects[stringlist.itemindex];
AnzeigeBedeutung.Text := fw.Bedeutung;


habs nur aus dem kopf geschrieben, müsste aber in etwa so gehen

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt

_________________
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 12.10.07 15:36 
Titel: Re: klar
Moin!

user profile icont3h hat folgendes geschrieben:
im anhang ist die datei
:shock: Holla, das wird aber nicht einfach sein, diese Datei einzulesen, da der Zeilenaufbau ziemlich variabel ist... :?

Muss die Datei genau so wie sie jetzt ist, verarbeitet werden? Oder dürftest du auch den Inhalt editieren (also den Aufbau anpassen), solange der Wortschatz erhalten bleibt?

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
t3h Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 20



BeitragVerfasst: Fr 12.10.07 15:39 
Titel: Ja
Hab gerade nochmal mit dem Lehrer geredet darf den Aufbau auch ändern


Zuletzt bearbeitet von t3h am Fr 12.10.07 15:47, insgesamt 1-mal bearbeitet
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 12.10.07 15:44 
Titel: Re: Ja
Moin!

user profile icont3h hat folgendes geschrieben:
Hab gerade nochmal mit dem Lehrer geredet darf den Aufbau auch ändern
Fein! ;) Dann mach dir mal Gedanken, wie der Zeilenaufbau aussehen sollte, damit man das mit Delphi "gut" verarbeiten kann. :)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
t3h Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 20



BeitragVerfasst: Fr 12.10.07 16:10 
Titel: mhm
wohl am besten mit einem Zeichen das nicht oft verwendet wird wie & oder so, dann könnte ich ja & als delimiter festsetzen aber wie genau krieg ich dann den delimited text in ne andere variable
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Fr 12.10.07 17:10 
Hallo!

Mit Copy, Pos, Delete, etc kannst du Strings bearbeiten. Sinnvoll könnte auch der folgende FAQ Beitrag sein: ...einen unterteilten String in ein Array schreiben?

Gruß,
Tino
t3h Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 20



BeitragVerfasst: Fr 12.10.07 17:29 
Titel: keine Ahnung
Hi ich hab leider keine Ahnung wie man das Fremdwort und das ergebnis (getrennt durch x-beliebiges-Zeichen) in zwei verschiedene Arrays bringen kann. Nen Denkanstoß oder sowas in der Richtung wäre sehr nett.
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Fr 12.10.07 17:32 
Zeig mal den Sourcecode den du schon hast.
t3h Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 20



BeitragVerfasst: Fr 12.10.07 17:38 
Titel: so gut wie keinen
Ich habe noch so gut wie garkeinen Source-Code bis jetzt lade ich nur die Liste direkt der nächste Schritt ist ja die eine Seite mit den Fremdwörter zu füllen und die memobox auf der anderen seite mit der bedeutung des angwählten Listen eintrags

---

Ich hab mir jetzt das ganze so überlegt das ich die ganze Liste in einem Array of String durch Explode getrennt zuteile dannach teil ich per i mod 2 = 1/0 das in ganze in zwei arrays (wenn 1 dann dem Fremdwort-array wenn 0 dem übersetzungs-array) auf. Was haltet ihr von der Idee?

Moderiert von user profile iconNarses: Beiträge zusammengefasst.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 12.10.07 23:01 
Moin!

Ich zeig mal nur einen kleinen Ausschnitt aus der Wörterbuchdatei:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
a, ab (Präp + Abl.) von ... her 
abesse, absum, afui abwesend sein, fehlen
abire, abeo, abii, abitum weggehen
ac = atque und 
accedere, accedo, -cesi, -cessum  
herbeikommen, hinzukommen
accidere, accido, accidi
geschehen, sich ereignen
accipere, accipio, -cepi, -ceptum    annehmen, bekommen
acies, aciei f  Schlachtordnung 
ad (Präp. + Akk.) zu, an, bei, nach
adducere, adduco, -duxi, ductum  heranführen, veranlassen 
adeo (Adv.)  so sehr
adesse, adsum, adfui (m. Dat.)  da sein, helfen
adhuc (Adv)  bis jetzt, noch
adire, adeo, adii, aditum hinzugehen 
adventus, adventus m Ankunft
aedis, aedis f  Tempel; Pl. Haus
aequus, -a, -um  eben, gleich, gerecht
Soll das etwa so getrennt werden? Dann musst du aber die gesamte Datei erstmal ordentlich im Editor überarbeiten, sonst wirst du das niemals mit Delphi zerpflückt kriegen... :?

Die Idee mit dem Trennzeichen ist gut, ich würde aber z.B. '|' nehmen. Was du dann allerdings mit den wie oben gezeigt markierten Teilstrings anfangen willst, ist mir noch unklar. Wie willst du mit sowas umgehen: "aequus, -a, -um"? :gruebel:

user profile icont3h hat folgendes geschrieben:
Hab gerade nochmal mit dem Lehrer geredet darf den Aufbau auch ändern
Sag doch mal etwas mehr dazu: bei was für einer "Hausaufgabe" sollen wir denn hier "helfen"? :zwinker:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Born-to-Frag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: Sa 13.10.07 01:50 
Narses also eigentlich würde es auch so gehn :mrgreen:
Zum erkennen wann die deutsche Bedeutung kommt kann man das Komma nehmen.

Wenn nach dem ersten Word kein Komma kommt, fängt gleich die deutsche Bedeutung an, sonst es dann wenn 2 Wörter ohne Komma aufeinander folgen..


greetz

_________________
Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
t3h Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 20



BeitragVerfasst: Sa 13.10.07 14:30 
Titel: So
Hier ist nochmal der Vokabel Anhang (überarbeitet)

und mein Code:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
begin
  opendialog1.Execute;
  VocFile := TStringList.Create;
  VocFile.Clear;
  VocFile.LoadFromFile(opendialog1.FileName);
  SetLength (VocList,VocFile.Capacity);
  SetLength (VocList[1],2);
  VocList[1] := explode ('|',VocFile[1]);
  memo1.Text := VocList[0,1];
end;


Allerdings spuckt das ne Fehlermeldung aus kann mir einer erklären wieso/was ich bessermachen kann)?

---

ist übrigens keine hausaufgabe sondern ein programm das ich freiwillig / für meinen Leiten-Kurs programmieren will

Moderiert von user profile iconNarses: Beiträge zusammengefasst.
Jann1k
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 866
Erhaltene Danke: 43

Win 7
TurboDelphi, Visual Studio 2010
BeitragVerfasst: Sa 13.10.07 21:31 
welche fehlermeldung spuckt er denn aus?

und benutze opendialog.execute besser so, damit verhinderst du dass dein programm etwas macht, wenn der benutzer den opendialog abbricht:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
begin  
if opendialog1.Execute then
 begin  
  VocFile := TStringList.Create;  
  VocFile.Clear;  
  VocFile.LoadFromFile(opendialog1.FileName);  
  SetLength (VocList,VocFile.Capacity);  
  SetLength (VocList[1],2);  
  VocList[1] := explode ('|',VocFile[1]);  
  memo1.Text := VocList[0,1]; 
 end;
end;