Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbank für Lexikon? (https://www.delphipraxis.net/127506-datenbank-fuer-lexikon.html)

m4rk0 14. Jan 2009 19:08

Datenbank: ? • Zugriff über: ?

Datenbank für Lexikon?
 
Hi

ich brauch ein paar Tipps bezüglich der programmierung von einer Art Lexikon.
Der Benutzer soll einen String über ein Edit-Feld eingeben und das Programm soll dann immer eine Erklärung liefern.
Habs bisher so gemacht
Delphi-Quellcode:
if ansicontainstext(edit1.text, '...') then label1.caption:='...'
Is aber wohl nicht das wahre für jedes Wort so eine Zeile einzufügen oder?
Die Funktion wird ewig lang :/
Deshalb dacht ich man kann ne .res Datei oder ähnliches einbinden, in der alles drinsteht.
Aber wie genau mach ich sowas?

DeddyH 14. Jan 2009 19:16

Re: Datenbank für Lexikon?
 
Du hast doch selbst das Stichwort Datenbank ins Spiel gebracht.

taaktaak 14. Jan 2009 19:46

Re: Datenbank für Lexikon?
 
Moin.
Um eine vernüftige Antwort geben zu können, müsstest du schon ein paar mehr Informationen geben. Im Editfeld wird genau ein Wort eingeben? Und dazu soll nach einem erklärenden Text gesucht und ggf. angezeigt werden?!
Für wie viele Worte (Größenordnung) sollen denn Texte hinterlegt werden? Dutzende, hunderte, tausende? Welche Länge soll der erklärende Text haben (maximal/im Durchschnitt)?

fkerber 14. Jan 2009 20:02

Re: Datenbank für Lexikon?
 
Hi!

Dazu würde ich noch die Frage nachschieben, ob du "nur" Text speichern willst oder vllt. auch mal ein Bild/Video o.ä.?


Ciao, Frederic

mjustin 15. Jan 2009 09:45

Re: Datenbank für Lexikon?
 
Zitat:

Zitat von m4rk0
Hi

ich brauch ein paar Tipps bezüglich der programmierung von einer Art Lexikon.
Der Benutzer soll einen String über ein Edit-Feld eingeben und das Programm soll dann immer eine Erklärung liefern.
Habs bisher so gemacht
Delphi-Quellcode:
if ansicontainstext(edit1.text, '...') then label1.caption:='...'
Is aber wohl nicht das wahre für jedes Wort so eine Zeile einzufügen oder?
Die Funktion wird ewig lang :/
Deshalb dacht ich man kann ne .res Datei oder ähnliches einbinden, in der alles drinsteht.
Aber wie genau mach ich sowas?

Mit TStrings könnte man eine Liste der Form

Name1=Wert1
Name2=Wert2
Name3=Wert3
...

erstellen (im Code direkt hinterlegt, oder in einer Textdatei).

Dann kann man nach einem Eintrag in der Liste anhand des Namens suchen und den Wert dazu nachschlagen. Wegen AnsiContainsText muss das Programm aber alle Einträge der Reihe durchlaufen. Bei kleinen Listen ist der Geschwindigkeitsverlust aber kaum spürbar.

Der Quelltext würde dann nur noch eine Schleife enthalten, statt 'viele' if Anweisungen.

Delphi-Quellcode:
for I := 0 to Liste.Count - 1 do
begin
  if AnsiContainsText(Edit1.Text, Liste.Names[I]) then
  begin
     Label1.Caption := Liste.ValueFromIndex[I];
     Break;
  end
end;

m4rk0 17. Jan 2009 00:12

Re: Datenbank für Lexikon?
 
Zitat:

Du hast doch selbst das Stichwort Datenbank ins Spiel gebracht.
Ich vermutete dass mein Problem vllt in den Bereich führt, hab aber selber keine Ahnung in dem Gebiet.

Ja also der Benutzer gibt ins Edit-Feld auch mehrere Wörter ein, damit das Programm prüft (z.b. wenn vom Benutzer das Wort mit dem in Verbindung gebracht wird dann sagt er dies und jenes...).
Der Text den das Programm dann als Antwort liefert ist mehrere hunder Wörter lang und enthält auch mal Bilder (wenn mögl auch Audio aber nich so wichtig).

khh 17. Jan 2009 10:33

Re: Datenbank für Lexikon?
 
Zitat:

Zitat von m4rk0
Zitat:

Du hast doch selbst das Stichwort Datenbank ins Spiel gebracht.
Ich vermutete dass mein Problem vllt in den Bereich führt, hab aber selber keine Ahnung in dem Gebiet.

Ja also der Benutzer gibt ins Edit-Feld auch mehrere Wörter ein, damit das Programm prüft (z.b. wenn vom Benutzer das Wort mit dem in Verbindung gebracht wird dann sagt er dies und jenes...).
Der Text den das Programm dann als Antwort liefert ist mehrere hunder Wörter lang und enthält auch mal Bilder (wenn mögl auch Audio aber nich so wichtig).

dazu sind DB u.a. da.

Gruss KH


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 Uhr.

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