Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   problem mit Delete (https://www.delphipraxis.net/168895-problem-mit-delete.html)

EWeiss 16. Jun 2012 21:26

problem mit Delete
 
Delphi-Quellcode:
Delete(s, (Pos(chr($0A), s)), strLen(PAnsiChar(s)));


Wenn im meinem String am ende chr($0A) steht möchte ich ihn löschen
das problem ist nur das dann mein zeilen umbruch nicht mehr stimmt.
lösche ich es nicht habe ich nach jeder zeile in opengl ein quadrat stehen.

wie kann ich das intelligenter lösen.

gruss

mkinzler 16. Jun 2012 21:27

AW: problem mit Delete
 
#10 ist ein Teil des Windows-Zeilenumbruch.

EWeiss 16. Jun 2012 21:41

AW: problem mit Delete
 
Zitat:

Zitat von mkinzler (Beitrag 1171199)
#10 ist ein Teil des Windows-Zeilenumbruch.

yup.. thanks

Ist wieder spät heute.

gruss

nahpets 16. Jun 2012 21:44

AW: problem mit Delete
 
Hallo,

löschen sollte mit Trim gehen, Trim entfernt alles was <= blank ist und da gehört der Zeilenumbruch auch zu.

himitsu 16. Jun 2012 21:52

AW: problem mit Delete
 
Zitat:

Delphi-Quellcode:
strLen(PAnsiChar(s))

Dein String ist ein AnsiString?
Wenn nein, warum dann ANSI und wenn ja, warum mischst du es dann mit Char (WideChar)?
So oder so, Delphi (2010) sollte dir mindestens eine Warnung um die Ohren werfen!

Warum nicht Delphi-Referenz durchsuchenLength?

Und sicher daß du den gesamten Text ab dem gefundenen #10 löschen willst? (ich dachte es soll nur die #10 weg :stupid: )

Delphi-Quellcode:
StringReplace
?

Wenn du den Zeilenumbruch anpassen willst, dann jag ihn am Einfachsten durch eine TStringList und pass dort Delphi-Referenz durchsuchenTStrings.LineBreak an.

EWeiss 16. Jun 2012 22:20

AW: problem mit Delete
 
Mein String ist ein String.
kann dann mit strLen(PansiChar, oder PWideChar übergeben werden

Zitat:

Delphi (2010) sollte dir mindestens eine Warnung um die Ohren werfen!
Nö tut es nicht ;)

Zitat:

ich dachte es soll nur die #10 weg
Jetzt aber richtig druf sagte ja ist schon spät.
Schon klar das $0A das gleiche ist wie chr(10)
Böse nur das man mich zu so später Stunde noch auf den Arm nehmen will.

Zitat:

Warum nicht Length?
würde reichen .. Ja
Zitat:

StringReplace
Auch eine alternative

Danke.. ;)

EDIT:
Und Trim wäre dann wohl die einfachste Alternative.

gruss

Popov 16. Jun 2012 22:30

AW: problem mit Delete
 
Naja, du könntest auch TrimRight nehmen, dann ist er fast doppelt so schnell. Dann kannst du noch behaupten deinen Code richtig optimiert zu haben :thumb:

mkinzler 16. Jun 2012 22:31

AW: problem mit Delete
 
Dann würden aber etwaige Füllzeichen auf der linken Seite überbleiben. :mrgreen:

himitsu 16. Jun 2012 23:00

AW: problem mit Delete
 
OK, StrLen ist überladen, womit man dort Ansi und Wide übergeben kann, (hatte erst gedacht das wären WinAPIs, da es sie auch in C++ gibt, womit es dann ja auf StrLenW weitergeleiter worden wäre)
aber wenn S ein String ist, dann sollte PAnsiChar(s) eine Warnung werfen.

Zitat:

Jetzt aber richtig druf sagte ja ist schon spät.
Jupp, is spät und wir haben Bei Google suchenBRN Saufgelage.

EWeiss 16. Jun 2012 23:08

AW: problem mit Delete
 
na ja hab jetzt auf jedenfall das timing mit den MidiDateien gefixt so das die richtigen wörter
angewählt werden so wie es sich gehört.

Aber irgendwas ist immer jetzt rutscht das letzte wort in die nächste zeile.

Boahh Ehh ist echt spät heute.
Alter Mann was nu ? Heheheheheheeeee

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:30 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