AGB  ·  Datenschutz  ·  Impressum  







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

Datei in Datei schreiben

Ein Thema von Zead · begonnen am 15. Dez 2006 · letzter Beitrag vom 17. Dez 2006
Antwort Antwort
Zead

Registriert seit: 14. Dez 2006
8 Beiträge
 
#1

Datei in Datei schreiben

  Alt 15. Dez 2006, 00:14
Hallo,

ich schreibe grad ein Programm, was ausgewählte Dateien(egal was für welche) in eine einzelne Datei schreibt.

Mein Problem dabei ist, dass die geschriebene Datei nur einen Teil der Originaldatei enthält.
Der geschriebene Text enthält zwar komplette Zeilen der Originaldatei, aber überwiegend sind Zeilen abgeschnitten oder die meisten gar nicht da.

Wenn ich eine Datei mit 250kb auslese und neu schreibe, ist die neue nur ca. 36kb groß.
Nehme ich zwei Dateien mit 250kb dann ist die geschriebene Datei ca 43kb groß.

Hier meine lese und schreiberoutine:

Delphi-Quellcode:
        assignfile(paket2,grafikass.Edit1.Text);
        rewrite(paket2);
        for i := 0 to grafikass.ListBox1.Count - 1 do
         begin
           assignfile(paket,grafikass.ListBox1.Items[i]);
           reset(paket);
           repeat
             readln(paket,z);
             writeln(paket2,z);
           until EOF(paket);
           closefile(paket);
         end;
        closefile(paket2);

die Variable z in der ich jede Zeile schreibe ist ein Ansistring. Der sollte eigentlich groß genug sein um eine einzelne Zeile zu speichern denke ich.

[edit=alcaeus]Delphi-Tags hinzugefuegt. In Zukunft bitte selbst tun Mfg, alcaeus[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#2

Re: Datei in Datei schreiben

  Alt 15. Dez 2006, 00:37
Hallo Zead und herzlich Willkommen in der DP!

Das Problem ist, das Du Binär Daten als Text behandelst, mein ich mal.

Um Binär in Dateien zu lesen, bzw. zu schreiben empfiehlt sich Hier im Forum suchenBlockRead & Hier im Forum suchenBlockWrite.
In der OH von Deinem Delphi findest Du ein Beispiel zu BlockRead

Alternativ kannst Du auch Hier im Forum suchenTFileStream verwenden.
Grüßle!

PS: Verwende bitte die Delphi Tags für den Code, damit man das besser lesen kann.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
15. Dez 2006, 10:00
Dieses Thema wurde von "SirThornberry" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
15. Dez 2006, 10:00
Dieses Thema wurde von "sakura" von "Object-Pascal / Delphi-Language" nach "Sonstige Fragen zu Delphi" verschoben.
Delphifragen gehören auch in Delphisparten, oder...?
Flo85

Registriert seit: 25. Apr 2006
23 Beiträge
 
#5

Re: Datei in Datei schreiben

  Alt 15. Dez 2006, 11:13
Hallo!

Das liegt daran das in deinen dateien zeichen drinn sind die bei Textdateien als zeilenende oder Dateiende angesehen werden.

bei ganz normalen textdazeien würde es so klappen wie du dir das gedacht hast.
Zitat von Sunlight7:
Um Binär in Dateien zu lesen, bzw. zu schreiben empfiehlt sich Hier im Forum suchenBlockRead & Hier im Forum suchenBlockWrite.
  Mit Zitat antworten Zitat
Zead

Registriert seit: 14. Dez 2006
8 Beiträge
 
#6

Re: Datei in Datei schreiben

  Alt 16. Dez 2006, 23:55
Ok..ich werd das mal ausprobieren.
Danke für eure Hilfe!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Datei in Datei schreiben

  Alt 17. Dez 2006, 09:55
Zitat von Zead:
ich schreibe grad ein Programm, was ausgewählte Dateien(egal was für welche) in eine einzelne Datei schreibt.
Zwischenfrage: Wieso nimmst Du keine fertige Kompos für ZIP-Komprimierung. Damit bekommst Du auch eine Komprimierung und Checksumme des Archivs "geschenkt"?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Zead

Registriert seit: 14. Dez 2006
8 Beiträge
 
#8

Re: Datei in Datei schreiben

  Alt 17. Dez 2006, 16:09
klar...aber ich will die zusammengeschriebene Datei später weiterverwenden und zusätzliche Informationen in ihr speichern. Mit ner Zip müsste ich die inner extra Datei speicher die entpacken und dann zusätzlich auch noch wieder auslesen.
Wenn ich an den Informationen was ändere muss ich das ganze Zip-Archiv umständlicherweise neu schreiben.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Datei in Datei schreiben

  Alt 17. Dez 2006, 21:15
Falls ein paar € kosten darf wäre das evtl. was für dich: Solid FileSystem
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Thorben_K

Registriert seit: 22. Okt 2006
Ort: Darmstadt
105 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Datei in Datei schreiben

  Alt 17. Dez 2006, 21:21
ich weise allerdings drauf hin, das wenn die date leer ist, du trotzdem einmal einliest

nimm statt repeat until lieber While not eof
Thorben
  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 05:09 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