AGB  ·  Datenschutz  ·  Impressum  







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

Unnötige Zeilenumbrücke löschen?

Ein Thema von mo_greene · begonnen am 30. Okt 2007 · letzter Beitrag vom 30. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2      
mo_greene

Registriert seit: 10. Dez 2006
Ort: Berlin
136 Beiträge
 
Turbo Delphi für Win32
 
#1

Unnötige Zeilenumbrücke löschen?

  Alt 30. Okt 2007, 18:02
Hallo,

ich benutze ein Memo Feld, welchem nach Ausführen des Programms immer ein Zeilenumbruch angefügt wird, d.h. es entsteht immer eine leere unnötige Zeile.

Wie kann ich diese entfernen?

liebste grüße & danke
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Unnötige Zeilenumbrücke löschen?

  Alt 30. Okt 2007, 18:03
Delphi-Quellcode:
if Memo.Lines.Count > 0 then
  Memo.Lines.Delete(Pred(Memo.Lines.Count));
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
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Unnötige Zeilenumbrücke löschen?

  Alt 30. Okt 2007, 18:07
Vielleicht sollte man trotzdem zur Sicherheit noch prüfen, ob die Zeile wirklich leer ist.
Delphi-Quellcode:
if Memo.Lines.Count > 0 then
  if Memo.Lines.Last='then
    Memo.Lines.Delete(Pred(Memo.Lines.Count));
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Unnötige Zeilenumbrücke löschen?

  Alt 30. Okt 2007, 18:15
wäre es nicht sinnvoller die Zeile nur einzufügen wenn die vorherige nicht auch schon eine Leerzeile ist?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
mo_greene

Registriert seit: 10. Dez 2006
Ort: Berlin
136 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Unnötige Zeilenumbrücke löschen?

  Alt 30. Okt 2007, 19:36
Delphi-Quellcode:
repeat
  if GeheimtextMmo.Lines.Count > 1 then
    if GeheimtextMmo.Lines.Strings[GeheimtextMmo.Lines.Count] = 'then
      GeheimtextMmo.Lines.Delete(Pred(GeheimtextMmo.Lines.Count))
  else
    break;
until GeheimtextMmo.Lines.Strings[GeheimtextMmo.Lines.Count] [b]<> ''[/b];
Irgendwie merkt er nicht, dass er bei <> '' die Schleife beenden soll...woran liegt das? Die repeat...until-Schleife läuft unendlich weiter, dabei soll er aufhören, wenn die Zeile wieder etwas enthält.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Unnötige Zeilenumbrücke löschen?

  Alt 30. Okt 2007, 19:42
Delphi-Quellcode:
while Length(GeheimtextMmo.Lines[GeheimtextMmo.Lines.Count - 1]) = 0 do
  GeheimtextMmo.Lines.Delete(GeheimtextMmo.Lines.Count - 1);
Ungetestet, aber ich finde hier eine Kopfschleife angebrachter.

P.S.: Die letzte Zeile hat den Index Lines.Count - 1
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
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Unnötige Zeilenumbrücke löschen?

  Alt 30. Okt 2007, 19:42
Die meisten Arrays, und alle Listen, werden in Delphi mit Null-basierten Indices angesprochen. Das heißt, dass das erste Element den Index 0 hat, und folglich das letzte Element den Index Count-1. Eigentlich sollte in deinem Code eine Exception "Listenindex überschreitet das Maximum" kommen.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Unnötige Zeilenumbrücke löschen?

  Alt 30. Okt 2007, 19:43
Was ist mit Trim...
Blackheart
  Mit Zitat antworten Zitat
monta

Registriert seit: 18. Okt 2004
Ort: Dresden
141 Beiträge
 
#9

Re: Unnötige Zeilenumbrücke löschen?

  Alt 30. Okt 2007, 19:44
wenn es wirklich nur die letzte Zeile ist, wieso nicht einfach ein Trim(Memo.Text) und gut ist.
Johannes M.
.
  Mit Zitat antworten Zitat
mo_greene

Registriert seit: 10. Dez 2006
Ort: Berlin
136 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Unnötige Zeilenumbrücke löschen?

  Alt 30. Okt 2007, 19:53
Zitat von DeddyH:
Delphi-Quellcode:
while Length(GeheimtextMmo.Lines[GeheimtextMmo.Lines.Count - 1]) = 0 do
  GeheimtextMmo.Lines.Delete(GeheimtextMmo.Lines.Count - 1);
Ungetestet, aber ich finde hier eine Kopfschleife angebrachter.

P.S.: Die letzte Zeile hat den Index Lines.Count - 1

wird bei 'length' ein Leerzeichen nicht auch mitberechnet?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:50 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