Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Memo String suche und Löschen (https://www.delphipraxis.net/194671-memo-string-suche-und-loeschen.html)

Natcree 19. Dez 2017 21:57

Memo String suche und Löschen
 
Hallo ich möchte in einem Memo in einer Zeile nach einem '%' suchen und mchte wenn es das 7. letzte Zeichen ist alles dannach löschen. nach einem STring suchen mache ich so
Delphi-Quellcode:
for i := Memo1.Lines.Count - 1 downto 0 do
  if Pos('#', Memo1.Lines[i]) <> 0 then
jedoch habe ich mehrere % zeichen in meinem Memo die auch drin bleiben sollen. es geht nur um die % welche sich an 8 letzter position der Memozeile befinden.

Kann mir jemand helfen oder einen guten Ansatz geben?!?
Danke

LTE5 19. Dez 2017 22:02

AW: Memo String suche und Löschen
 
Versuch mal
Delphi-Quellcode:
System.SysUtils.LastDelimiter
Delphi-Quellcode:
for i := Memo1.Lines.Count - 1 downto 0 do
 begin
  sLine := Memo1.Lines[i];
  iPos := System.SysUtils.LastDelimiter('%', sLine);

  if iPos > 7 then
   .....
 end;
Den Rest mit 7tes oder 8tes Zeichen habe ich ehrlich gesagt nicht kapiert.

Natcree 19. Dez 2017 22:07

AW: Memo String suche und Löschen
 
habe in eingen zeilen so etwas zu stehen

125 1 Haustier 5,00 4,67 5,00 0,2% 4,67 5,00 0,2% 20 0 -1

Ich will in solchen Zeilen alles hinter dem letzten % zeichen löschen

LTE5 19. Dez 2017 22:12

AW: Memo String suche und Löschen
 
Dann so

Delphi-Quellcode:
for i := Memo1.Lines.Count - 1 downto 0 do
 begin
  iPos := System.SysUtils.LastDelimiter('%', Memo1.Lines[i]);

  if iPos > 0 then // weil du eben von irgendwas mit 7, 8 und was weiß ich geschrieben hast, stand hier vorher > 7
   begin
    Memo1.Lines[i] := Copy(Memo1.Lines[i], 1, iPos);
   end;
 end;

Natcree 19. Dez 2017 22:20

AW: Memo String suche und Löschen
 
muss ich noch irgend eine unit einbinden der erkennt sline und ipos nicht?

LTE5 19. Dez 2017 22:21

AW: Memo String suche und Löschen
 
Am besten lokal, da wo die Schleife aufgerufen wird
Delphi-Quellcode:
var
 iPos: Integer;
sLine brauchst du nicht. Siehe oben.
Habe oben auch einen Tippfehler korrigiert.

Natcree 19. Dez 2017 22:24

AW: Memo String suche und Löschen
 
er erkennt SysUtils nicht
[Error] Unit1.pas(74): Undeclared identifier: 'SysUtils'

LTE5 19. Dez 2017 22:25

AW: Memo String suche und Löschen
 
Mach aus

System.SysUtils.LastDelimiter

das hier

LastDelimiter

Natcree 19. Dez 2017 22:26

AW: Memo String suche und Löschen
 
sline ist dann ein String?

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
i:integer;
iPos: Integer;
sline:string;
begin
for i := Memo1.Lines.Count - 1 downto 0 do
 begin
  iPos := SysUtils.LastDelimiter('%', Memo1.Lines[i]);

  if iPos > 0 then // weil du eben von irgendwas mit 7, 8 und was weiß ich geschrieben hast, stand hier vorher > 7
   begin
    Memo1.Lines[i] := Copy(sLine, iPos);
   end;
 end;
end;

LTE5 19. Dez 2017 22:27

AW: Memo String suche und Löschen
 
Habe mein Beispiel oben geändert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 Uhr.
Seite 1 von 2  1 2      

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