![]() |
Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Liste der Anhänge anzeigen (Anzahl: 2)
Ich habe eine rezeptsammlung erstellt, nun eine Suchfunktion eingefügt. Mittels eines Arrays. Allerdings funktioniert es mit dem Else Zweig nicht. Egal Was ich ins edit Feld eingebe, auch wenn das Rezept nicht im Array gespeichert ist, sagt es, dass es vorhanden ist.. könnte mir jemand helfen und sagen wo der Fehler liegt ? Dringend!! Muss es am Donnerstag abgeben(Projekt)
|
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Könntest du den Code bitte als Text (und in Delphi-Tags) posten, anstatt als Bild?
|
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Dein If ist irgendwie ganz komisch.
Muss das nicht eher so sein?
Delphi-Quellcode:
> 0 bedeutet, dass "Gesucht" in "Rezept[s]" vorkommt.
if Pos(UpperCase(Gesucht), UpperCase(Rezept[s])) > 0 then
> 0, weil wenn Gesucht Wirsing ist und Rezept[s] Wirsinggemuese, dann ist das W von Wirsing an Position 1 gefunden worden. = 0 bedeutet, dass Gesucht nicht gefunden wurde. |
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Wieso ausgerechnet „>“? Muss die Arbeit ich verteidigen deshalb die Frage 😅
|
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Zitat:
Gesucht: Wirsing Rezept[s] = Wirsinggemuese Resultat: Wirsinggemuese Pos = 1 in diesem Fall, da die Zählung bei 1 beginnt (W = erster Buchstabe in Wirsinggemuese). Deshalb auf > 0 testen. Und = 0 heißt dann "nicht gefunden". |
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Mit dem Handy den Bildschirm abfotografieren kenne ich so nur aus der Generation 50+.
Weißt du nicht, wie du in Windows einen Screenshot erstellen kannst? ![]() |
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Bin neu hier und mache das hier grad alles auf dem Handy, deshalb mit bild! :D
|
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Zitat:
Ihr wollt nicht di Position wissen, sondern nur ob was drin ist.
Delphi-Quellcode:
oder
pos > 0
Delphi-Quellcode:
ist hier also das Gleiche. (0 = nicht gefunden)
pos <> 0
Aber warum die Position, welche ihr nicht wissen wollt? ![]() ![]() |
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Ich will quasi, dass mein Programm, wenn Eingabe edit Feld und Array übereinstimmen, im Label ausgibt ‚vorhanden‘ wenn dies nicht der Fall ist ‚nicht vorhanden.. bisher funktioniert leider kein Vorschlag. Habt ihr noch mehr Ideen ? Würde mich freuen wenn ich es gelöst bekommen
|
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Zitat:
|
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Wenn das gesuchte vorkommt. Sprich Wirsinggemuese Eingabe -> (im Array vorhanden):vorhanden
|
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Dann so
Zitat:
|
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Schreib mal bitte folgendes (die drei ... natürlich nicht hinschreiben, ist eine verkürzte Darstellung!):
Delphi-Quellcode:
Du verlässt die Schleife nicht im Erfolgsfall. Darum musst du ein Break hinmachen!
for ... do
if ... then begin Label9.Caption := 'Hier steht dein Text'; Break; // <--- das wird der entscheidende Punkt sein! end else ... |
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Zitat:
Gesucht = ArrayElement[x] Oder sameText() verwenden. Grüße Klaus |
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Zitat:
Code:
Dann sieht der SourceCode gleich viel besser und viel lesbarer aus.
[DELPHI]
// Dein SourceCode hier [/DELPHI]
Delphi-Quellcode:
if (Pos(StringPart, MainString) <> 0) then begin
// Do something end; |
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Süß wie alle sich auf das String-Problem stürzen. :twisted:
Liebe Programmierkollegen: Es fehlt das BREAK in der SCHLEIFE! 8-) |
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Zitat:
Wenn das Element das letzte der Liste ist, gibt es 24 x mal die Ausgabe "nicht gefunden/enthalten". Grüße Klaus |
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Hallo,
auch mit dem break ist der Code nicht so schön lesbar.
Delphi-Quellcode:
var
bGefunden: Boolean; begin bGefunden:= False; for do begin if bla then begin bGefunden := True; break; end; end; if bGefunden then Label9.Caption := 'gefunden' else Label9.Caption := 'nicht gefunden'; |
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
procedure TForm1.Button6Click(Sender: TObject);
Var Rezept:array[1..25] of string; s:Integer; Gesucht:String; begin Gesucht:=UpperCase(Edit1.text); Rezept[1]:=Apfelrotkohl; Rezept[2]:=Apfelkuchen; Rezept[3]:=Baerlauchhummus; Rezept[4]:=Currywurst; Rezept[5]:=Donauwelle; Rezept[6]:=Eiersalat; Rezept[7]:=Frikadellen; Rezept[8]:=Gemuesepfanne; Rezept[9]:=Heidelbeermarmelade; Rezept[10]:=Italienischer_Nudelsalat; Rezept[11]:=Jaegerschnitzel; Rezept[12]:=Kuerbiscremesuppe; Rezept[13]:=Linsensuppe; Rezept[14]:=Mangomarmelade; Rezept[15]:=Nudelauflauf; Rezept[16]:=Omlette_mit_Tomaten; Rezept[17]:=Pfifferlingsuppe; Rezept[18]:=Quarkkeulchen; Rezept[19]:=Rinderbraten; Rezept[20]:=Schmandkuchen; Rezept[21]:=Tomatensalat; Rezept[22]:=Ungarisches_Gulasch; Rezept[23]:=Vanillekipferl; Rezept[24]:=Wirsinggemuese; Rezept[25]:=Zucchinicremesuppe; For s:=1 to 25 Do If Pos (Uppercase(Gesucht),UpperCase(Rezept[s]))<> 0 Then begin Label9.Caption:='Das Rezept ist in der Rezeptsammlung vorhanden!'; Break; end Else begin Label9.Caption:='Das Rezept ist nicht in der Rezeptsammlung vorhanden!'; end; end; So sieht es jetzt aus. Wenn ich zuerst was eingebe, was nicht vorhanden ist zeigt es dann an '...nicht vorh.'. Aber wenn ich dann etwas eingebe was vorhanden ist, auf den button klicke, passiert nichts und das '...nicht vorh.' bleibt stehen !:O |
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Delphi-Quellcode:
Label9.Caption:='Das Rezept ist nicht in der Rezeptsammlung vorhanden!';
For s:=1 to 25 Do begin If Pos (Uppercase(Gesucht),UpperCase(Rezept[s]))<> 0 Then begin Label9.Caption:='Das Rezept ist in der Rezeptsammlung vorhanden!'; Break; end; end; |
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Zitat:
|
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
und vielleicht noch auf Gleichheit prüfen.
Es soll ja nicht Vanille gefunden werden - sondern Vanillekipferl. Grüße Klaus |
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Hast du einen passenden Quelltext ? Problem: Eingabe von 'hjb jj' -> 'nicht vorh.' Danach sofortige Eingabe 'Apfelrotkohl' -> 'nicht vorhanden'...Habe den eindruck, das Programm führt nichts aus nachdem man erneut auf button klickt und es eig sagen müsste 'vorh.'
|
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Hier wurde schon einer geschrieben
Zitat:
|
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Geht nicht. es sagt, dass es nicht vorhanden ist, egal ob es so ist oder nicht :(
|
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Denn wenn ich das mal schnell runtertippe und die einzelnen Rezepte als Strings anstatt String-Konstanten schreibe, dann geht's: |
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Hallo,
und dann bitte noch 2 Stellen optimieren alt: For s:=1 to 25 do If Pos (Uppercase(Gesucht),UpperCase(Rezept[s]))<> 0 Then neu: For s:=Low(Rezept) to High(Rezept) do If AnsiUpperPos(Gesucht,Rezept[s])<> 0 Then Dann musst du bei einem neuen Rezept die 25 nicht jedesmal ändern. Und Zählvariablen heissen immer i (Das war ein Scherz ;) ) |
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Delphi-Quellcode:
Die Variante aus
var
Rezept : array[1..25] of string; i : Integer; Gesucht : String; Gefunden : Boolean; begin Gesucht := UpperCase(Edit1.text); ... i := Low(Rezept); repeat Gefunden := Pos(Gesucht,UpperCase(Rezept[i])) <> 0; Inc(i); until Gefunden or (i > High(Rezept)); Label9.Caption:= Format('Das Rezept ist %sin der Rezeptsammlung vorhanden!',[IfThen(Gefunden,'','nicht ')]); end; ![]() |
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
String exceeds line wird mir angezeigt
|
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Wo?
|
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Zitat:
Code:
vergessen oder zu viel.
'
|
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Delphi-Quellcode:
So habe ich es eigegeben, es funktioniert nicht. :/ Bin leider in Info nicht allzu begabt :D
procedure TForm1.Button6Click(Sender: TObject);
Var i : Integer; Gesucht : String; Gefunden : Boolean; begin Gesucht:=UpperCase(Edit1.text); Rezept[1]:='Apfelrotkohl; Rezept[2]:='Apfelkuchen'; Rezept[3]:='Baerlauchhummus'; Rezept[4]:='Currywurst'; Rezept[5]:='Donauwelle'; Rezept[6]:='Eiersalat'; Rezept[7]:='Frikadellen'; Rezept[8]:='Gemuesepfanne'; Rezept[9]:='Heidelbeermarmelade'; Rezept[10]:='Italienischer_Nudelsalat'; Rezept[11]:='Jaegerschnitzel'; Rezept[12]:='Kuerbiscremesuppe'; Rezept[13]:='Linsensuppe'; Rezept[14]:='Mangomarmelade'; Rezept[15]:='Nudelauflauf'; Rezept[16]:='Omlette_mit_Tomaten'; Rezept[17]:='Pfifferlingsuppe'; Rezept[18]:='Quarkkeulchen'; Rezept[19]:='Rinderbraten'; Rezept[20]:='Schmandkuchen'; Rezept[21]:='Tomatensalat'; Rezept[22]:='Ungarisches_Gulasch'; Rezept[23]:='Vanillekipferl'; Rezept[24]:='Wirsinggemuese'; Rezept[25]:='Zucchinicremesuppe'; i := Low(Rezept); repeat Gefunden := Pos(Gesucht,UpperCase(Rezept[i])) <> 0; Inc(i); until Gefunden or (i >= High(Rezept)); Label9.Caption:= Format('Das Rezept ist %sin der Rezeptsammlung vorhanden!',[IfThen(Gefunden,'','nicht ')]); Hoffe das es bald geht, ihr eine Lösung meines Problems findet |
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Da fehlt am Ende das '
Delphi-Quellcode:
Rezept[1]:='Apfelrotkohl;
|
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Zitat:
Wenn die Zahl ungerade ist, dann fehlt dir eins. Tipp: Das fehlende ' ist in den ersten 10 Zeilen deiner Methode zu suchen! |
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Hallo,
damit ich auch meinen Senf dazu gebe - ungetestet denn das mit dem Array ist Käse, geht alles wesentlich eleganter und einfacher, vor allem wenn du etwas erweitern willst
Delphi-Quellcode:
//Stringliste definieren
var meineRezepte: TStringlist; //.. Instanz erzeugen im OnCreate meinerezepte:=TStringlist.create; //.. Etwas hinzufügen meineRezepte.add('Lieblingsessen'); //.. Suchen if meineRezepte.indexof('Lieblingsessen')<>-1 then vorhanden //..Läßt sich statt Edit auch mit Combobox und Autovervollständigung nutzen //.. Die Strings bekommst du dann rein mit Combobox1.items.addstrings(meineRezepte); //.. und wenn du das abspeichern willst meineRezepte.Savetofile('Zieldatei'); //..zum Beispiel über einen Dialog if savedialog1.execute then meineRezepte.Savetofile(savedialog1.filename); // Du kannst genauso durch deine Stringliste mit einer Forschleife und Pos wenn du das willst und musst dich auch um die Anzahl der Gerichte nicht kümmern gefunden:=false; for i:=0 to meineRezepte.count-1 do if pos('eingabe',meineRezepte[i])>0 then gefunden:=true; |
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Es sagt nun, das 'Rezept'nicht gefunden wird
|
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Zitat:
|
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Die Variable 'rezept' wird nicht gefunden. Warum ??
|
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Weil du sie nicht mehr deklariert hast.
Delphi-Quellcode:
So sah es vorher aus.
procedure TForm1.Button6Click(Sender: TObject);
Var i : Integer; Gesucht : String; Gefunden : Boolean; begin
Delphi-Quellcode:
nichts für ungut. Aber Grundwissen bezüglich Variablen-Deklaration sollte eigentlich vorhanden sein.
procedure TForm1.Button6Click(Sender: TObject);
Var Rezept:array[1..25] of string; s:Integer; Gesucht:String; begin |
AW: Frage zu Rezeptsammlung-> Suchfunktion durch Array funktioniert nicht
Ich habe noch nicht sehr lang Informatik Unterricht, aber ja.
,[IfThen(Gefunden,'','nicht ')]);end; -> so steht es in Meinem Programm ...aber es fehlt ja was bei dem Teil, was muss ich da eig rein schreiben? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:40 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