Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Buchstabensuche !aller! Felder (https://www.delphipraxis.net/99607-buchstabensuche-aller-felder.html)

Lotus 14. Sep 2007 17:42


Buchstabensuche !aller! Felder
 
Folgendes Problem.. ich moechte eine Suchfunktion machen (nur für Buchstaben).. diese funktion soll mir alle Stellen (Felder) von a liefern an denen der Buchstabe = dem gesuchtem ist!
ich hab dann diese function geschrieben er meint dauernd fehler aber ich erkenne ihn nirgends!!!


Delphi-Quellcode:
function suche2(buchstabe:string):integer;
var i2:integer;
begin
for i2:=1 to nf do begin
  if a[i2] <> buchstabe[1] then Inc(i2) // <--- Hier soll Fehler sein
  else begin
  suche2:=suche2 + i2 + ',';
  Inc(i2);
  end
  end
end;

hoffe ihr könnt mir helfen

DeddyH 14. Sep 2007 17:44

Re: Fehler im Code.. aber wo?
 
In for-Schleifen darfst Du die Zählvariable nicht innerhalb der Schleife ändern.

mkinzler 14. Sep 2007 17:46

Re: Fehler im Code.. aber wo?
 
Du könntest die Schleife aber z.B. in eine While-Schleife umbauen.

DeddyH 14. Sep 2007 17:51

Re: Fehler im Code.. aber wo?
 
Dann wird es aber spätestens an der Zeile
Delphi-Quellcode:
suche2:=suche2 + i2 + ',';
scheitern ;)

mkinzler 14. Sep 2007 17:52

Re: Fehler im Code.. aber wo?
 
Ja, er sollte sich mal die Grundlagen von Delphi ansehen.

Thorben_Ko 14. Sep 2007 17:54

Re: Fehler im Code.. aber wo?
 
sucht mal in der OH nach Pos und nach PosEx

gruss Thorben

Lotus 14. Sep 2007 17:55

Re: Fehler im Code.. aber wo?
 
hm.. wie kann ich denn sonst "alle" werte überprüfen.. also nehmen wir mal an ich habe 5 Felder
1 A
2 V
3 A
4 A
5 S

und ich will jetzt nach A suchen.. jetzt möchte ich das er mir ausgibt 1, 3 und 4
das wollte ich mit dieser funktion erreichen.. mir faellt jetzt aber nix ein wie das funktionieren würde

DeddyH 14. Sep 2007 17:57

Re: Fehler im Code.. aber wo?
 
Entweder ein String als Rückgabe, dann geht es so, wie Du gecodet hast, oder z.B. eine TList als Var-Parameter übergeben.

RWarnecke 14. Sep 2007 17:58

Re: Fehler im Code.. aber wo?
 
Nimm diese Funktion und rufe diese in einer For_Schleife auf oder in einem repeat...until Block auf :
Delphi-Quellcode:
function PosN(Substring, Mainstring: string; n: Integer): Integer;
begin
  if Pos(substring, mainstring) = 0 then begin
    posn := 0;
    Exit;
  end else begin
    if n = 1 then posn := Pos(substring, mainstring)
    else begin
      posn := Pos(substring, mainstring) + posn(substring, Copy(mainstring,
         (Pos(substring, mainstring) + 1), Length(mainstring)), n - 1);
    end;
  end;
end;
Diese Funktion gibt Dir die Position des Suchstrings aus. Wird der Suchstring nicht gefunden ist das Ergebnis 0.

Lotus 14. Sep 2007 18:08

Re: Fehler im Code.. aber wo?
 
hm.. als string wiedegeben? is das nich ein wiederspruch in sich weil doch das feld integer ist.. oder kann ich da sagen inttostr?
hm.. mit Tlist habe ich noch nie gearbeitet.. delphi hilfe war auch nich gerade überhaeuft mit infos.. könntet ihr mir da vllt ein paar infos zuschieben?

@Rwarnecke
danke für diesen code.. allerdings verstehe ich diesen nicht ganz und möchte ihn daher nicht blind benutzen.. mir wäre es lieber wenn ich alles genau verstehe.. allerdings faengts schon bei sub und mainstring an...


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:49 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz