Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Fehler bei Trimleft (https://www.delphipraxis.net/206607-fehler-bei-trimleft.html)

julchen 11. Jan 2021 19:23

Fehler bei Trimleft
 
Hallo,

ich habe einen Text, wo in jeder leeren Zeile am Zeilenanfang ein Leerzeichen steht.
Das möchte ich gerne löschen.
Die Leerzeile soll aber bleiben.

Der Code löscht mir aber den kompletten Text:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var i: integer  ;
begin
    for i := Memo1.Lines.Count - 1 downto 0 do begin
      if (Memo1.Lines[i] = ' ') then begin
      Memo1.Text := Trimleft(' ');
      end;
    end;
end;
Vielleicht könnt ihr mir ja helfen.
VG, Julia

Pfaffe 11. Jan 2021 19:28

AW: Fehler bei Trimleft
 
Zaunpfahl wink: "in Zeile..." -> Memo1.Text := Trimleft(' ');?

julchen 11. Jan 2021 19:40

AW: Fehler bei Trimleft
 
Alles was links und leer ist. Das war der Plan.

DeddyH 11. Jan 2021 19:48

AW: Fehler bei Trimleft
 
Du siehst nach, ob die jeweilige Zeile aus lediglich einem Leerzeichen besteht und falls ja, ersetzt Du den kompletten Text des Memos durch einen Leerstring. Ist das wirklich so gewollt?

Klaus01 11. Jan 2021 19:51

AW: Fehler bei Trimleft
 
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var i: integer ;
begin
    for i := Memo1.Lines.Count - 1 downto 0 do begin
      if (Memo1.Lines[i] = ' ') then begin // hier prüfst Du ob die Zeile leer ist
      Memo1.Text := Trimleft(' '); // hier entfernst Du die Leerzeichen links vom GesamtText.
      end;
    end;
end;
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var i: integer ;
begin
    for i := Memo1.Lines.Count - 1 downto 0 do begin
      Memo1.lines[i] := Trimleft(Memo1.lines[i]);
    end;
end;
Grüße
Klaus

julchen 11. Jan 2021 19:59

AW: Fehler bei Trimleft
 
Vielen Dank.

Ich wußte nicht, das Trimleft(Memo1.lines[i]) gehen kann, wegen String und Integer.
Da hapert es noch. :(

Einen schönen Abend noch.

himitsu 12. Jan 2021 04:47

AW: Fehler bei Trimleft
 
Zitat:

Delphi-Quellcode:
if Memo1.Lines[i] = ' ' then
  Memo1.Text := TrimLeft(' '); //

Du prüft eine Zeile, aber weißt dann das Ergebnis allen Zeilen zu,
obwohl du eigentlich nur der einen Zeile etwas zuweisen wolltest, also
Delphi-Quellcode:
if Memo1.Lines[i] = ' ' then
  Memo1.Lines[i] := TrimLeft(' ');

[DELPHI]if Memo1.Lines[i] = ' ' then // prüfen ob "1 Leerzeichen"
// oder besser
if Trim(Memo1.Lines[i]) = '' then // prüfen ob "kein Text", bzw. "alles Leerzeichen oder nichts"[DELPHI]


Delphi-Quellcode:
  Memo1.Lines[i] := TrimLeft(' ');
  Memo1.Lines[i] := Trim(' '); // ob links, rechts oder beidseitig ist egal
  Memo1.Lines[i] := ''; // da dieses Leerzeichen "fest" ist, kann man es auch gleich weglassen

  Memo1.Lines[i] := TrimLeft(Memo1.Lines[i]); // oder direkt den originalen Zeilen-Text kürzen
Wo ist hier String und Integer, weswegen es nicht gehen solle?
Delphi-Quellcode:
Lines[i]
liefert einen String (für die Zeile i)

julchen 12. Jan 2021 13:49

AW: Fehler bei Trimleft
 
Wo ist hier String und Integer, weswegen es nicht gehen solle?
Delphi-Quellcode:
Lines[i]
liefert einen String (für die Zeile i)[/QUOTE]

Ja, aber mir macht es Schwierigkeiten zu erkennen, wann ich einen Zähler einem String zuweisen kann.

Moombas 12. Jan 2021 13:59

AW: Fehler bei Trimleft
 
Du weist ja keinem String einen Zähler zu.
Dein "String" ist in Wahrheit eine Stringliste (wie die Seite in einem Buch).
Der "Zähler" sagt nur aus welche Zeile du haben willst, mehr nicht.
Also quasi:

Inhalt := Buchseite[Zeile];
//Oder:
Inhalt := DieserBeitrag[Zeile]; //-> Inhalt := DieserBeitrag[1]; = "Du weist ja keinem String einen Zähler zu."


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 Uhr.

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