In TStringlist gibt es die Suchfunktionen FIND und INDEXOF.
Die arbeiten aber nur auf exakte Gleichheit. Ich benötige dagegen eine Suche nach Stringanfängen.
Beispiel:
string1:='abcdefgh'';
string2:='ab12345';
string3:='cc8899';
Und nun möchte ich alle Strings finden, die mit 'ab' beginnen.
Wie geht das ?
Suche in TStringlist
-
- Beiträge: 321
- Registriert: Sa 11. Jun 2016, 12:16
- OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0
- CPU-Target: 64Bit
- Wohnort: Konstanz
-
- Lazarusforum e. V.
- Beiträge: 560
- Registriert: So 10. Sep 2006, 23:24
- OS, Lazarus, FPC: Linux Mint 22; Lazarus 4.0 FPC 3.2.2; RaspiOS
- CPU-Target: AMD 64, ARM 64
- Wohnort: nr Stuttgart
Re: Suche in TStringlist
Hallo malabarista,
die Funktion, die du suchst heist 'pos' für Postion. In deinem Fall kannst du schreiben:
Du musst natürlich jedes Element deiner Stringliste durchgehen und prüfen!
Gruß, Linkat
die Funktion, die du suchst heist 'pos' für Postion. In deinem Fall kannst du schreiben:
Code: Alles auswählen
s:='ab';
if pos(s,string1)=1 then writeln(s,' steht am Anfang von ',string1)
else writeln(s,' steht nicht am Anfang von ' ,string1);)
Gruß, Linkat
Linux Mint 21.3; Lazarus 3.4 FPC 3.2.2; RaspiOS
-
- Beiträge: 6914
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Suche in TStringlist
Mit fpc 3.1 hat es dafür noch einen neue Function gegeben,
Code: Alles auswählen
const
String1 = '1234567890';
var
s: string;
begin
s := '12';
if String1.IndexOf(s) = 0 then begin
writeln(s, ' steht am Anfang von ', string1);
end else begin
writeln(s, ' steht nicht am Anfang von ', string1);
end;
end;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 321
- Registriert: Sa 11. Jun 2016, 12:16
- OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0
- CPU-Target: 64Bit
- Wohnort: Konstanz
Re: Suche in TStringlist
ok.Dankeschön.
Dann werde ich eine binäre Suche nach diesen Teilstrings machen.
Dann werde ich eine binäre Suche nach diesen Teilstrings machen.