AGB  ·  Datenschutz  ·  Impressum  







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

Probleme mit File Of Byte/Char

Ein Thema von J Kadison · begonnen am 8. Okt 2008 · letzter Beitrag vom 17. Jan 2009
Antwort Antwort
J Kadison

Registriert seit: 8. Sep 2007
Ort: Ebertsheim
96 Beiträge
 
Delphi 7 Personal
 
#1

Probleme mit File Of Byte/Char

  Alt 8. Okt 2008, 08:39
Hallöle!
Ich hab da ein kleines Problem und zwar möchte ich Dateien verschlüsseln. Das wäre acuh nicht mein problem, aber wie bekomm ich denn die Dateien am besten eingelesen?
Ich hab zwar rausgeunden, dass ich das mit file of byte machen kann also:

Delphi-Quellcode:
var
  xy,
  m : File of Byte;
  x : integer;
begin
  Pfad := Edit1.Text;

  AssignFile(xy,pfad);
  reset(xy);

  rewrite(m,'C:\MeineDat.exe');
  reset(m);

  for x := 0 to FileSize(xy)-1 do begin

    read(xy,zz);
    write(m,zz);

  end;

  closefile(xy);
  closefile(m);
end;
Das hier ist absolut kein Problem. Ich bekommen genau die gleiche Datei.
Aber sobald ich das Ganze jetzt irgendwo zwischenspecihern möchte, geht das schief:

Delphi-Quellcode:

var
  l : Array of Byte;
  xy,
  m : File of Byte;
  x : integer;
  Pfad,
  Pfad1 : String;
begin
  Pfad := Edit1.Text;
  Pfad1 := Edit2.Text;

  AssignFile(xy,pfad);
  reset(xy);

  rewrite(m,Pfad1);
  reset(m);

  SetLength(l, Filesize(xy));
  for x := 0 to FileSize(xy)-1 do begin
    read(xy,l[x]);
    // Hier hab ich noch was um den Fortschirtt anzuzeigen
  end;
  for x := 0 to Length(l) do begin
    write(m,l[x]);
    // Hier hab ich noch was um den Fortschirtt anzuzeigen
  end;
  closefile(xy);
  closefile(m);
end;

Kann mir jetzt irgendjemand sagen, wo hier der Fehler ist?
wenn ich kleine TXT dateien wähle werden die zwar noch nichtig angezeigt aber die dateigröße der beiden ist unterschiedlich. Sobald ich EXE dateien oder ähnliches nehme weichen diese verdammt arg ab und funktionieren uach nichtmehr!
Was mach ich denn Falsch
(kann ja nur ne kleinigkeit sein oder?)
Ich komm aber auch nach stundenlanger fehlersuche nicht drauf!

Kann ich das Gaze auch gleich als File of char öffnen (wenn ich dann den QT so anpasse damit es keine Fehler mehr gibt) oder kann ich deswegen auch wieder probleme mit den Dateien bekommen?
MFG
Joshi
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#2

Re: Probleme mit File Of Byte/Char

  Alt 8. Okt 2008, 08:52
Zitat:
rewrite(m,Pfad1);
reset(m);
Was soll denn das?
Sollte das rewrite() nicht ein assignfile() sein?!
Ralph
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#3

Re: Probleme mit File Of Byte/Char

  Alt 8. Okt 2008, 09:04
Zitat von J Kadison:
Delphi-Quellcode:
  AssignFile(xy,pfad);
  reset(xy);

  rewrite(m,Pfad1);
  reset(m);
Das dürfte eigentlich nicht ohne Fehlermeldung übersetzt werden, da der (optionale) 2. Parameter von rewrite kein String ist. Rewrite wird genauso benutzt wie reset, aber ANSTELLE von reset. Also:

Delphi-Quellcode:
  AssignFile(m,Pfad1);
  rewrite(m);
Hier wird 1 Byte zuviel geschrieben:
  for x := 0 to Length(l) do begin
Zitat von J Kadison:
Kann ich das Gaze auch gleich als File of char öffnen (wenn ich dann den QT so anpasse damit es keine Fehler mehr gibt) oder kann ich deswegen auch wieder probleme mit den Dateien bekommen?
Besser nicht, wenn es keine Char sind - wahrscheinlich macht es aber keinen Unterschied, da Char nicht speziell behandelt werden, das ist nur beim Filetyp Text der Fall (soweit aus der Hilfe dazu was zu entnehmen ist). Ist auch zukunftssicherer, falls mal Unicode als Standard kommt.

Gruss Reinhard
  Mit Zitat antworten Zitat
J Kadison

Registriert seit: 8. Sep 2007
Ort: Ebertsheim
96 Beiträge
 
Delphi 7 Personal
 
#4

Re: Probleme mit File Of Byte/Char

  Alt 8. Okt 2008, 13:45
Hallo Danke für die schnellen Antworten.
Bin grad leider nur auf durchmarsch.
Probiere es heute abend aus aber ihr meint, mit

Delphi-Quellcode:
var
  l : Array of Byte;
  xy,
  m : File of Byte;
  x : integer;
  Pfad,
  Pfad1 : String;
begin
  Pfad := Edit1.Text;
  Pfad1 := Edit2.Text;

  AssignFile(xy,pfad);
  reset(xy);

  
  //DAS HIER IST GEÄNDERT
  AssignFile(m,Pfad1);
  rewrite(m);
  //BIS HIER

  SetLength(l, Filesize(xy));
  for x := 0 to FileSize(xy)-1 do begin
    read(xy,l[x]);
    // Hier hab ich noch was um den Fortschirtt anzuzeigen
  end;
  for x := 0 to Length(l)-1 {DAS IST AUCH GEÄNDERT} do begin
    write(m,l[x]);
    // Hier hab ich noch was um den Fortschirtt anzuzeigen
  end;
  closefile(xy);
  closefile(m);
end;
solte es gehen?! oder ist da ncoh was falsch ?

Aber kann das Length(1) zu einem größenunterschied von ~ 300KB führen?!?
MFG
Joshi
  Mit Zitat antworten Zitat
J Kadison

Registriert seit: 8. Sep 2007
Ort: Ebertsheim
96 Beiträge
 
Delphi 7 Personal
 
#5

Re: Probleme mit File Of Byte/Char

  Alt 17. Jan 2009, 20:37
Ja konnte es xD
Okay damit hat sich das Thema auch erledigt
MFG
Joshi
  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 21:49 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