Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Zeilenumbruch aus String entfernen


Hendi48 - Do 04.10.07 13:08
Titel: Zeilenumbruch aus String entfernen
Hi,

ich habe gerade versucht, eine Datei zu erstellen aber das schlug fehl. Ich habe den Fehler gesucht, und herausgefunden das der Dateiname einen !Zeilenumbruch! hatte. Also in etwa so:

Quelltext
1:
2:
Lied
.mp3

Ich hab schon versucht es mit StringReplace zu entfernen:

Delphi-Quelltext
1:
  FileName := StringReplace(FileName, #13#10'', [rfReplaceAll]);                    

Aber der Zeilenumbruch war immer noch da. Kann ich das irgendwie anders machen?


Kroko - Do 04.10.07 13:15

nimm mal statt

Delphi-Quelltext
1:
#13#10                    

sLineBreak,

allerdings, dass in einem Dateinamen ein zeilenumbruch ist, klingt höchst unwahrscheinlich!


passiv - Do 04.10.07 13:17

warum suchst Du nach #13 und #10?
ein Zeilenumbruch hat als ASCII-Code nur #13, soweit ich weiß


Hendi48 - Do 04.10.07 13:17

user profile iconKroko hat folgendes geschrieben:
nimm mal statt

Delphi-Quelltext
1:
#13#10                    

sLineBreak,

allerdings, dass in einem Dateinamen ein zeilenumbruch ist, klingt höchst unwahrscheinlich!

Hab ich schon ausprobiert, geht nicht.
Ich finde auch das es sehr komisch ist, aber ich weiß leider auch nicht warum es so ist :shock:

Edit: Nur #13 geht auch nicht :cry:


Kroko - Do 04.10.07 13:19

zeige mal, wie Du zu dem Dateinamen kommst!


Hendi48 - Do 04.10.07 13:21

Der Dateiname und die Endung wird per Regular Expression aus HTML Quellcode rausgeholt und dann wird einfach so:

Delphi-Quelltext
1:
Filename := Filename + Endung;                    

Die Endung dadran gehängt


jaenicke - Do 04.10.07 13:23

Wie wäre es so?

Delphi-Quelltext
1:
Filename := Trim(Filename) + Endung;                    
Trim entfernt Leerzeichen, Zeilenumbrüche, etc. am Anfang und Ende eines Strings.

// EDIT:
Allerdings muss ja der Zeilenumbruch irgendwo herkommen, deshalb würde ich lieber mal suchen, woher der kommt und das beheben.


Kroko - Do 04.10.07 13:25

dann ist FileName oder Endung falsch bzw. haben den Zeilenumbruch,
lösche ihn doch einfach


Delphi-Quelltext
1:
2:
for I := length(Stringdownto 1 do
  if String[I] in [#01..#31then Delete(String,I,1);


Hendi48 - Do 04.10.07 13:26

Danke, mit dem Trim geht es perfekt! :D


Kroko - Do 04.10.07 13:28

user profile iconjaenicke hat folgendes geschrieben:
...Trim ...
oder so

user profile iconjaenicke hat folgendes geschrieben:
Allerdings muss ja der Zeilenumbruch irgendwo herkommen, deshalb würde ich lieber mal suchen, woher der kommt und das beheben.

Würde ich Dir auch raten!