AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler bei Trimleft

Ein Thema von julchen · begonnen am 11. Jan 2021 · letzter Beitrag vom 12. Jan 2021
Antwort Antwort
julchen

Registriert seit: 20. Mär 2008
115 Beiträge
 
Delphi 10.3 Rio
 
#1

Fehler bei Trimleft

  Alt 11. Jan 2021, 20:23
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
Kollegin: Am Wochenende wird mein PC immer langsamer! Liegt das am Strom?
  Mit Zitat antworten Zitat
Pfaffe

Registriert seit: 29. Jan 2009
297 Beiträge
 
Delphi 12 Athens
 
#2

AW: Fehler bei Trimleft

  Alt 11. Jan 2021, 20:28
Zaunpfahl wink: "in Zeile..." -> Memo1.Text := Trimleft(' ');?
  Mit Zitat antworten Zitat
julchen

Registriert seit: 20. Mär 2008
115 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Fehler bei Trimleft

  Alt 11. Jan 2021, 20:40
Alles was links und leer ist. Das war der Plan.
Kollegin: Am Wochenende wird mein PC immer langsamer! Liegt das am Strom?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.620 Beiträge
 
Delphi 12 Athens
 
#4

AW: Fehler bei Trimleft

  Alt 11. Jan 2021, 20:48
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?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Fehler bei Trimleft

  Alt 11. Jan 2021, 20:51
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
Klaus
  Mit Zitat antworten Zitat
julchen

Registriert seit: 20. Mär 2008
115 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Fehler bei Trimleft

  Alt 11. Jan 2021, 20:59
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.
Kollegin: Am Wochenende wird mein PC immer langsamer! Liegt das am Strom?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.048 Beiträge
 
Delphi 12 Athens
 
#7

AW: Fehler bei Trimleft

  Alt 12. Jan 2021, 05:47
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?
Lines[i] liefert einen String (für die Zeile i)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
julchen

Registriert seit: 20. Mär 2008
115 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Fehler bei Trimleft

  Alt 12. Jan 2021, 14:49
Wo ist hier String und Integer, weswegen es nicht gehen solle?
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.
Kollegin: Am Wochenende wird mein PC immer langsamer! Liegt das am Strom?
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Fehler bei Trimleft

  Alt 12. Jan 2021, 14:59
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."
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:49 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