AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi abspeichern einer textdatei ohne lästigen Zeilenumbruch
Thema durchsuchen
Ansicht
Themen-Optionen

abspeichern einer textdatei ohne lästigen Zeilenumbruch

Ein Thema von cRayZo · begonnen am 21. Aug 2008 · letzter Beitrag vom 23. Aug 2008
Antwort Antwort
Seite 1 von 2  1 2      
cRayZo

Registriert seit: 30. Jul 2007
156 Beiträge
 
Delphi 6 Personal
 
#1

abspeichern einer textdatei ohne lästigen Zeilenumbruch

  Alt 21. Aug 2008, 00:06
Hallo
ich habe folgendes Problem:
ich programmiere grade an einem System das uA. auf zeilenweiser ein und auslese von Textdateien basiert.
Dafür ist es immens wichtig, dass nur so viel Zeilen in der txt existieren, wie auch beschrieben sind!
wenn ich jetzt einen text aus einem RichEdit in eine Textdatei speichere
Delphi-Quellcode:
sl:=TStringlist.Create;
sl.text:=Richedit1.Text;
sl.SaveToFile('pfad');
dann habe ich dass Problem, dass immer ein Zeilenumbruch mit angehängt wird!!
Ich hab schon fast alles probiert. Vorher den Richedit zu trimmen bringt zB. schlicht gar nichts.

könnt ihr mir da helfen? das wäre klasse!
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: abspeichern einer textdatei ohne lästigen Zeilenumbruch

  Alt 21. Aug 2008, 01:04
Warum muss es unbedingt ein RichEdit sein?
Wenn du keine Textformatierung benötigst, dann reicht doch ein Memo völlig aus.

Dann kannst du einfach folgendes schreiben...
  Memo.Lines.SaveToFile('<FILE>');
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: abspeichern einer textdatei ohne lästigen Zeilenumbruch

  Alt 21. Aug 2008, 05:30
Moin,

der Thread TMemo: Leerzeilen am Ende erkennen beschäftigt sich auf gewisse Weise mit dem gleichen Thema.

Einen ungewollten Zeilenumbruch am Ende kann man bei Verwendung von strings.SaveToFile() oder strings.SaveToStream() nicht vermeiden, aber im Nachgang so beseitigen:

Delphi-Quellcode:
begin
  // ...
  strings.SaveToStream(stream);
  stream.Size := stream.size - Length(sLineBreak);
  // ...
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
cRayZo

Registriert seit: 30. Jul 2007
156 Beiträge
 
Delphi 6 Personal
 
#4

Re: abspeichern einer textdatei ohne lästigen Zeilenumbruch

  Alt 21. Aug 2008, 16:53
Zitat von marabu:
Moin,
Einen ungewollten Zeilenumbruch am Ende kann man bei Verwendung von strings.SaveToFile() oder strings.SaveToStream() nicht vermeiden, aber im Nachgang so beseitigen:
Delphi-Quellcode:
begin
  // ...
  strings.SaveToStream(stream);
  stream.Size := stream.size - Length(sLineBreak);
  // ...
end;
wie sieht das bei einer stringlist aus?
so?
Delphi-Quellcode:
sl:=TStringlist.Create;
sl.text:=Richedit1.Text;
sl.Text:=sl.text-Length(sLineBreak);
sl.Savetofile('');
oder wie? SLineBreak ist ein Zeilenumbruch..
etwas wie size beim stream fällt mir bei einer stringlist nicht ein..
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: abspeichern einer textdatei ohne lästigen Zeilenumbruch

  Alt 21. Aug 2008, 16:59
so wie du es machst geht es nicht. Entweder du schreibst die Zeilen einzeln in eine Datei oder verwendest SaveToStream und änderst dann dei Streamgröße.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
cRayZo

Registriert seit: 30. Jul 2007
156 Beiträge
 
Delphi 6 Personal
 
#6

Re: abspeichern einer textdatei ohne lästigen Zeilenumbruch

  Alt 21. Aug 2008, 17:38
wie säh es denn aus, wenn ich es einzeln einspeichere?
Wenn ich wieder string.savetofile mache, kommt doch immer ein Zeilenumbruch..
Wenn ich das zeilenweise mache, hab ich doch nachher so viele Zeilenumbrüche wie Zeilen?
oder verstehe ich dich falsch?
  Mit Zitat antworten Zitat
21. Aug 2008, 18:07
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage
cRayZo

Registriert seit: 30. Jul 2007
156 Beiträge
 
Delphi 6 Personal
 
#8

Re: abspeichern einer textdatei ohne lästigen Zeilenumbruch

  Alt 22. Aug 2008, 20:22
also, bitte korrigiert mich

ich mache das jetzt anders..

Mit einem Zeilenumbruch am Ende muss ich leben, nur wenn Zeilenumbrüche in der Mitte sind möchte ich diese "leeren" Zeilen löschen. Ich hätte das jetzt so gemacht, "???????" ist der platzhalter für das "erkennungszeichen" von einem Zeilenumbruch
Delphi-Quellcode:
for i2:=0 to Richedit1.Lines.Count do
if Richedit1.Lines[i2]= ??????????
then Richedit1.Lines.Delete(i2);
bitte helft mir, ich bin ech schon verzweifelt....
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

Re: abspeichern einer textdatei ohne lästigen Zeilenumbruch

  Alt 22. Aug 2008, 21:44
Hallo crayzo,
leider hab ich nicht so recht verstanden,worum es Dir geht,darum ein paar Basics.
Unter Dos wird jede Zeile in ener Textdatei durch CRLF (#13+#10) begrenzt.
das ist so!
Wenn Du mit .lines arbeitest, sind diese Zeilenbregenzer nicht sichtbar (unter normalen Umständen).
Wenn Du Leerzeilen löschen willst, dann mach es ungefähr so:

if trim(length(xxx.lines[i]))=0 then xxx.delete(i); Wenn Du unbedingt an die CRLF heran willst, solltest du mit xxx.Text arbeiten.

In Deinem Eingangsstatemet Schreibst Du:
Zitat:
ich programmiere grade an einem System das uA. auf zeilenweiser ein und auslese von Textdateien basiert.
Dafür ist es immens wichtig, dass nur so viel Zeilen in der txt existieren, wie auch beschrieben sind!
Leider kenne ich Deine Beschreibung nicht. Da aber eine wesentliche Eigenschaft von Textdateien ihre variable Größe ist, mußt Du vor Benutzung dieser Datei sicherstellen,daß auch alle benötigten Daten in der Datei enthalten sind. Wenn mehr als die x Zeilen in der Datei stehen, dann werden sie eben ignoriert.

Oder sollte es sein daß Du dich mit einer CSV-Datei herumschlägst, bei der die Anzahl der Phys. Datensätze nicht mit der Anzahl der log. Datensätze übereinstimmt?

Übrigens ist Zeilenumbruch ein Begriff aus der Textbearbeitung, der die phys. Formatierung eines logischen Satzes beschreibt.

Zeig dochmal ein Beispiel von Deinen Daten. Vielleicht gibt es ja auch eine ganz andere Möglichkeit der Lösung.

Gruß
K-H
  Mit Zitat antworten Zitat
fortuneNext

Registriert seit: 11. Aug 2007
Ort: Neuss
133 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: abspeichern einer textdatei ohne lästigen Zeilenumbruch

  Alt 22. Aug 2008, 22:17
Zusammenfassend gesagt ist was er will:

-Den Absatz am Ende entfernen
-Leere Zeilen entfernen

das wars denke ich schon... xD

Ich würds so probieren:

Delphi-Quellcode:
for i2:=0 to Richedit1.Lines.Count do
if Richedit1.Lines[i2]= ''
then Richedit1.Lines.Delete(i2);
Tim
"Hilfe & Support konnte nicht geöffnet werden. Bitte öffnen sie Hilfe & Support, um das Problem zu beheben."
"No Keyboard found. Press F1 to continue."
  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 23:37 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