Autor Beitrag
Nilius
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mo 06.06.11 10:56 
Also ich habe noch ein weiteres Problem mit meinem Programm, ich suche in meinem Array of String zB nach einem Namen und möchte diesen Datensatz danach auch ausgeben lassen. Funktioniert auch alles wunderbar, nur leider gibt er mir wenn ich nach "Muster" suchen lasse "Mustermann" nicht aus und ich weiß nicht was ich daran ändern muss damit er mir den auch auswirft.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TForm2.Selektieren;
var x,d:integer; suchname,:string; gesucht:boolean; kunde:Dat;
begin
  x:=0//Startwert der zu durchsuchenden Einträge aus der Listbox
  d:=list_daten.items.count;  //Anzahl der Einträge in der Listbox
  suchname:=form3.edit_name.text;  //Zu suchendes Wort
  while d>x do //Solange es mehr Einträge gibt als den wo ich grad bin
    begin
      gesucht:=True;  //Da ich nach mehreren Kriterien suche hab ich das hier eingefügt, und jeweils bei den einzelnen Kriterien wird dann schon ausgesiebt.
      //formatieren der Daten, sodass ich ihm sagen kann wodrin er suchen soll. Also eintragen in meinen Record aus meinem Array (Der Array enthält halt einfach alle Daten ausm Record hintereinander gereiht, aus Speichergründen)            
      if form3.check_name.checked=True then //Wenn nach dem Kriterium Name gesucht werden soll
        begin
          If Kunde.Name=suchname then gesucht:=True //Kunde.Name ist ein Sting in meinem Record
            else gesucht:=False;
        end;
     if gesucht=false then begin list_daten.Items.Delete(x); d:=list_daten.Items.Count; end  //Wenn der nich gesucht is, aus Listbox löschen
     else inc(x); //wenn gesucht ist, nächsten Eintrag überprüfen
end;



Hilfe :(
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 06.06.11 11:01 
Du hast die Lösung doch praktisch schon im Titel des Threads drin. :gruebel:

Anstatt hier auf Gleichheit zu überprüfen

ausblenden Delphi-Quelltext
1:
If Kunde.Name=suchname then					

solltest du mit Hilfe der Funktion pos überprüfen, ob suchname in Kunde.Name enthalten ist.

_________________
We are, we were and will not be.

Für diesen Beitrag haben gedankt: Nilius
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1654
Erhaltene Danke: 244

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Mo 06.06.11 11:01 
Hallo,

Probiere mal das:
ausblenden Delphi-Quelltext
1:
If POS(suchname,Kunde.Name) >0 then gesucht:=True					


Gruß Horst

Für diesen Beitrag haben gedankt: Nilius
Nilius Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mo 06.06.11 11:03 
hachja, das Forum hier hilft mir schon durch die reine anwesenheit^^ habs grad beim post nochma durchlesen selbst rausgefunden^^ *kopf-tisch*


hab jetzt einfach

ausblenden Delphi-Quelltext
1:
2:
If Kunde.Name=suchname then gesucht:=True //Kunde.Name ist ein Sting in meinem Record          
  else gesucht:=False;


geändert in:

ausblenden Delphi-Quelltext
1:
2:
3:
c:=pos(suchname,Kunde.name);
If c<>0 then gesucht:=True
else gesucht:=false;


ende^^
Tastaro
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 414
Erhaltene Danke: 23



BeitragVerfasst: Mo 06.06.11 11:25 
ausblenden Delphi-Quelltext
1:
gesucht := pos(suchname,Kunde.name) <> 0;					


Beste Grüße

Für diesen Beitrag haben gedankt: Horst_H
Gerd Kayser
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 632
Erhaltene Danke: 121

Win 7 32-bit
Delphi 2006/XE
BeitragVerfasst: Mo 06.06.11 13:19 
user profile iconNilius hat folgendes geschrieben Zum zitierten Posting springen:

ausblenden Delphi-Quelltext
1:
if form3.check_name.checked=True then					

Das ist falsch! Lass einfach das "= true" weg.