AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TFileStream: Text am Anfang einfügen in Textdatei
Thema durchsuchen
Ansicht
Themen-Optionen

TFileStream: Text am Anfang einfügen in Textdatei

Ein Thema von Helmi · begonnen am 16. Jan 2007 · letzter Beitrag vom 16. Jan 2007
Antwort Antwort
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#1

TFileStream: Text am Anfang einfügen in Textdatei

  Alt 16. Jan 2007, 16:31
Hallo,

mit diesem Code schreib ich in Eine Text-Datei ans Ende einen String:
Delphi-Quellcode:
  try
    FileStream := TFileStream.Create(LogFile, fmOpenReadWrite);

    with FileStream do
      begin
        //Fehler-Text
        S := ErrorText;
        S := S + #13#10;

        //
        //Am Ende der Datei schreiben (FileStream-Position = FileStream-Größe)
        Position := Size;

        //In die vorhandene Datei schreiben
        WriteBuffer(S[1], Length(S));
      end;
  finally
    //FileStream freigeben und löschen
    FreeAndNil(FileStream);
  end;
Nur wie kann ich einen String am Anfang der Datei einfügen?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: TFileStream: Text am Anfang einfügen in Textdatei

  Alt 16. Jan 2007, 16:33
die daten liegen auf der Festplatte hinter einander. Wenn du was davon einfügen willst musst du alle Daten dahinter, versetzt neu schreiben
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#3

Re: TFileStream: Text am Anfang einfügen in Textdatei

  Alt 16. Jan 2007, 16:37
Zitat von SirThornberry:
die daten liegen auf der Festplatte hinter einander. Wenn du was davon einfügen willst musst du alle Daten dahinter, versetzt neu schreiben
Sir, das ist mir klar, Sir!

Nur leider weiss ich nicht, wie ich das in code-form bringen kann.
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  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: TFileStream: Text am Anfang einfügen in Textdatei

  Alt 16. Jan 2007, 16:39
erst mit Stream.Size die Datei vergrößern. Dann die Datei Stückenweise (maximal so groß wie der buffer) ans Ende der Datei schreiben.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#5

Re: TFileStream: Text am Anfang einfügen in Textdatei

  Alt 16. Jan 2007, 16:42
es ist mir klar, dass man es verschieben muss
nur es nutzt mir nichts, wenn du mir schreibst, wie es sein muss
mir wäre ein code-fetzen lieber
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#6

Re: TFileStream: Text am Anfang einfügen in Textdatei

  Alt 16. Jan 2007, 16:49
Schau Dir einmal das Beispiel an zu Delphi-Referenz durchsuchenTStream.CopyFrom und berücksichtige, dass Du sowohl in der Quelle (bisherige Datei) als auch im Ziel (geänderte Datei) unterschiedliche Position zu setzen hast. Dann könntest Du als aktives Mitglied selbst dahinter kommen. Gruß Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#7

Re: TFileStream: Text am Anfang einfügen in Textdatei

  Alt 16. Jan 2007, 16:51
Ich habs jetzt mal als aktives Mitlied (wie Jürgen es gerade provokatorisch schrieb) so gelöst:
Delphi-Quellcode:
Stream_Laenge := Size;
SetLength(Buffer, Stream_Laenge);
ReadBuffer(Buffer[1], Stream_Laenge);
Position := 0;

S := S + Buffer;
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  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 22:25 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