Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Mathias
Beiträge: 6162 Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz
Beitrag
von Mathias » Mo 1. Okt 2018, 18:10
Beim FPC 3.1, wurde bei Pos ein dritter Parameter eingeführt, man kann das Offset angeben, wo er mit suchen anfangen soll.
Folgendes spuckt 5 aus.
Code: Alles auswählen
Caption := pos( 'a' , 'abababababababababab' , 5 ) .ToString ;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
sstvmaster
Beiträge: 575 Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden
Beitrag
von sstvmaster » Mo 1. Okt 2018, 19:08
das ist schon richtig so Pos liefert ja Int zurück, also die Position des ersten vorkommens.
bei
Code: Alles auswählen
var s1: String ; s2: String ;begin s1 := 'abababababababababababcabababababababababab' ; s2 := 'abababababababababab' ; Label1.Caption := Pos( 'abc' , s1, 5 ) .ToString ; Label2.Caption := Pos( 'a' , s2, 6 ) .ToString ;
ist s1 = 21, s2 = 7
Passt.
Der Offset legt halt nur den Start fest ab wo gesucht werden soll.
LG Maik
Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)
Mathias
Beiträge: 6162 Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz
Beitrag
von Mathias » Mo 1. Okt 2018, 19:26
Dies war keine Frage, sondern nur als Info gedacht?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
sstvmaster
Beiträge: 575 Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden
Beitrag
von sstvmaster » Mo 1. Okt 2018, 19:37
, dann hab ich nichts gesagt.
LG Maik
Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)
Warf
Beiträge: 1908 Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64
Beitrag
von Warf » Mo 1. Okt 2018, 19:41
Dafür gabs bislang ja die Funktion PosEx aus den StrUtils. Finde ich gut das es jetzt in Pos direkt mit drin ist
Mathias
Beiträge: 6162 Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz
Beitrag
von Mathias » Fr 10. Apr 2020, 15:53
Da bin ich gerade über eine Stolperfalle gestolpert:
Code: Alles auswählen
s := 'abababababababababababcabababababababababab' ; ofs := 1 ; ... ofs := Pos( 'ab' , s, ofs) ; ...
Ich hatte zuerst
ofs := 0 ; , da wurde bei Pos immer 0 zurück gegeben, obwohl der Suchstring mehrmals vorhanden war.
Wichtig, man muss immer mit
1 beginnen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
m.fuchs
Lazarusforum e. V.
Beiträge: 2636 Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:
Beitrag
von m.fuchs » Fr 10. Apr 2020, 16:24
bart_simpson_string_index.png (225.96 KiB) 2354 mal betrachtet
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
sstvmaster
Beiträge: 575 Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden
Beitrag
von sstvmaster » Fr 10. Apr 2020, 17:44
@ m.fuchs +1
LG Maik
Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)