AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Datei Byteweise einlesen und in String speichern

Datei Byteweise einlesen und in String speichern

Ein Thema von -Lucky- · begonnen am 4. Mai 2008 · letzter Beitrag vom 29. Jan 2009
Antwort Antwort
-Lucky-

Registriert seit: 4. Mai 2008
28 Beiträge
 
Delphi 7 Enterprise
 
#1

Datei Byteweise einlesen und in String speichern

  Alt 4. Mai 2008, 12:48
Erst einmal ein nettes Hallo meinerseits, bin neu hier.



Bevor jetzt jemand kommt, das Thema hatten wir schon X-Mal, nein, ich habe gesucht und keine direkte Antwort auf meine Fragen gefunden.

Problem: Ich möchte eine x beliebige Datei nehmen, und die einzelnen Bytes alle einzeln einlesen, dass sie in einem String temporär zwischengespeichert werden. Umgekehrt soll es auch möglich sein, das String wieder als Datei abzuspeichern.

Es ist möglich, den Inhalt einer Datei in ein Memofeld zu laden, alles kein Problem. Aber ich möchte die einzelnen Bytes als Ascii Zeichen direkt in einem String haben, z.B. von einer Exe Datei. Inkl. den Steuerzeichen, also die nicht Buchstaben.

Zum einen könnte man das über TFileStream lösen, aber hier die Zeichen in String umzuwandeln dauert sehr lange, kann auch sein dass meine Prozedur einfach nur uneffektiv ist, da ich auf jedes Zeichen einzeln zugreife. Kann man gleich alles mit einmal in ein String packen?

Also ich suche eine schnelle Prozedur, wie ich eine x-Beliebige Datei in ein String packen kann, und den Text dann wieder als Datei abspeichern kann.

Für eure Hilfe wäre ich sehr dankbar^^
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#2

Re: Datei Byteweise einlesen und in String speichern

  Alt 4. Mai 2008, 13:51
textfile könnte dir helfen...

http://www.delphibasics.co.uk/RTL.asp?Name=TextFile

EDIT: Übrigens: Willkommen in der DP , und das ist wohl oder übel das falsche Forum für die Frage ^^.
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
marabu

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

Re: Datei Byteweise einlesen und in String speichern

  Alt 4. Mai 2008, 13:57
Hallo,

hier ist noch ein Thread zum gleichen Thema: klick

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#4

Re: Datei Byteweise einlesen und in String speichern

  Alt 4. Mai 2008, 14:00
du mußt einfach nur unktionen verwenden, welche keiner Stringbehandlung unterliegen.

z.B.:
Delphi-Quellcode:
FS: TFileStream;
S: String;

FS := TFileStream.Create('Da.tei', fmOpenRead);
SetLength(S, FS.Size);
FS.ReadBuffer(S[1], FS.Size);
FS.Destroy;
alternativ geht alles was wie [oh]{TStream.}ReadBuffer[/oh] oder Delphi-Referenz durchsuchenBlockRead arbeitet,
also nicht so wie Read und ReadLn.

[edit] mit Fehlerprüfung ala FileToString und StringToFile kommt's natürlich noch besser
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
-Lucky-

Registriert seit: 4. Mai 2008
28 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Datei Byteweise einlesen und in String speichern

  Alt 5. Mai 2008, 21:27
Danke für die Antwort. Werde mir das morgen mal in Ruhe durcharbeiten, wenn ich Zeit habe, und dann schreiben, ob ich mein Problem damit lösen konnte.

Ich hab auch noch nen paar andere Probleme, aber eins nach dem anderen

Warum bin ich nicht schon früher auf die Idee gekommen hier Hilfe zu suchen, ich hoffe ich kann auch mal helfen.
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#6

Re: Datei Byteweise einlesen und in String speichern

  Alt 29. Jan 2009, 20:23
Ich habe mal meine byteweise Suche in großen Dateien geändert von

read(f,c)

in oben genanntes.
Ein Super Geschwindigkeitsvorteil. Mit alter Funktion mindestens 20 sek. mit neuer Funktion ca. 1-2 sek.

Super!!!!!!!
Matthias
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:43 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