Entwickler-Ecke

Algorithmen, Optimierung und Assembler - ReadBlock und WriteBlock


GTA-Place - Do 30.12.04 17:37
Titel: ReadBlock und WriteBlock
Es gibt nicht zufällig ne Möglichkeit, dass Speichern und dann Öffnen der Textdatei zu umgehen (davon abgesehen, dass wenn ich die Textdatei öffne, nicht wirklich das richtige im Memo steht (in der Textdatei steht viel, viel mehr))


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
procedure TForm1.Button2Click(Sender: TObject);
type
  TCopyBuffer = array[0..4095of Char;
var
  Buffer: ^TCopyBuffer;
  Source, Dest: file;
  RetVal: Integer;
begin
  New(Buffer);

  try
    AssignFile(Source, 'C:\meinsong.mp3');
    Reset(Source, 1);

    AssignFile(Dest, 'C:\test.txt');
    Rewrite(Dest, 1);

    while (not Eof(Source)) do
    begin
      BlockRead(Source, Buffer^, SizeOf(Buffer^), RetVal);
      BlockWrite(Dest, Buffer^, RetVal);
    end;

    CloseFile(Source);
    CloseFile(Dest);

    Memo1.Lines.LoadFromFile('C:\test.txt');
  finally
    Dispose(Buffer);
  end;
end;


Grendel - Do 30.12.04 17:48
Titel: Re: ReadBlock und WriteBlock
GTA-Place hat folgendes geschrieben:
Es gibt nicht zufällig ne Möglichkeit, dass Speichern und dann Öffnen der Textdatei zu umgehen

Du willst also erst den Inhalt der zukünftigen textdatei vollständig in einen String paken und diesen dann wegschreiben?! Richtig?
Also nicht erst Zeildatei anlegen und dann Zeile für Zeile wegschreiben.

Wenn ja dann nimm einfach ein TFileStream.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
var
  FS: TFileStream;
  Inhalt: String;
begin

  ...  // hier wird irgendwo "Inhalt" befuellt

  FS := TFileStream.Create('meinedatei.txt', fmCreate);
  FS.Write(PChar(Inhalt)^, Length(Inhalt));
  FS.Free();

end;


Wenn nicht, dann hab ich nicht verstanden was Du willst.

GTA-Place hat folgendes geschrieben:
(davon abgesehen, dass wenn ich die Textdatei öffne, nicht wirklich das richtige im Memo steht (in der Textdatei steht viel, viel mehr))

Da Du den Inhalt einer mp3 Datei wegschreibst wird das Textfile mit Sicherheit Zeichen enthalten, die das Memo nicht darstellen kann. (#0 - #30)

Bis neulich ...


GTA-Place - Do 30.12.04 17:53

Ach ich habs mir grad anders überlegt, trotzdem Danke.


Tino - Do 30.12.04 18:07

GTA-Place hat folgendes geschrieben:
Ach ich habs mir grad anders überlegt

Und wie? Danke! ;-)


Grendel - Do 30.12.04 18:30

Tino hat folgendes geschrieben:
GTA-Place hat folgendes geschrieben:
Ach ich habs mir grad anders überlegt

Und wie? Danke! ;-)

Na, "anders" eben ;)

Bis neulich ...


GTA-Place - Do 30.12.04 18:51

Ich brauchs doch nicht im Memo.