[ borovac @ 25.06.2005. 17:00 ] @
ovako,
imam jedan fajl i trebam ga pročitati, svaki znak posebno, i pisati izmjenjene znakove u novi fajl.

Code:
Čitaj(fajl1,znak)
Enkiptuj(znak)
Piši(fajl2,znak)


Radim enkripciju i dekripciju.

pokušao sam ovako ali radi samo za textualne datoteke
Code:
AssignFile(file1,FileName);
Reset(file1);
AssignFile(file2,EncryptionFileName);
Rewrite(file2);
while not eof(file1) do
  begin
    Readln(file1,FileLine);
    LengthOfLine:=Length(FileLine);
    for i:=1 to LengthOfLine do
      begin
        writeln(file2,enkriptuj(FileLine[i]));
      end;
    writeln(file2);
  end;
CloseFile(file1);
CloseFile(file2);
[ Passwd @ 25.06.2005. 17:12 ] @
A kakve bi ti datoteke jos???
[ borovac @ 25.06.2005. 20:16 ] @
Kažem ticsamo txt rade, dok svi drugi fajlovi ne rade.
Možda treba nešto sa stream-om, nisam siguran.
Dajte pomozite.
[ Nemanja Avramović @ 25.06.2005. 21:44 ] @
binarne fajlove moras sa stream-om, a ne znam kakva ti je to enkripcija (da li ce raditi)
[ Toyo @ 26.06.2005. 00:31 ] @
Code:


function uradinesto(b:byte): byte;
begin
  result := b blablabla...
end;

var 
 f1,f2:file of byte;
 b:byte;
begin
 assignfile(f1,'ulaz.zip');
 assignfile(f2, izlaz.doc');
 reset(f1);
 rewrite(f2);
 while not eof(f1) do
   begin
     read(f1,b);
     write(f2, uradinesto(b));
   end;
  closefile(f1);
  closefile(f2);
end;
[ borovac @ 26.06.2005. 12:17 ] @
Možda treba nešto ovako.
Code:

procedure EncodeFile(const Key: string; const FileName: string);
var
  Stream: TFileStream;
begin
  Stream := TFileStream.Create(FileName, fmOpenReadWrite or fmShareExclusive);
  try
    EncodeStream(Key, Stream);
  finally
    Stream.Free;
  end;
end;

procedure EncodeStream(const Key: string; Stream: TStream);
var
  MemStream: TMemoryStream;
  Count: Cardinal;
  Pos: Int64;
begin
  MemStream := TMemoryStream.Create;
  try
    Pos := Stream.Position;
    Count := Cardinal(Stream.Size - Pos);
    MemStream.SetSize(Count);
    if Count <> 0 then
    begin
      Stream.ReadBuffer(MemStream.Memory^, Count);
      Encode(Key, MemStream.Memory, Count);
      Stream.Position := Pos;
      Stream.WriteBuffer(MemStream.Memory^, Count);
    end;
  finally
    MemStream.Free;
  end;
end;


ne kontam ovaj dio
Code:

      Stream.ReadBuffer(MemStream.Memory^, Count);
      Stream.WriteBuffer(MemStream.Memory^, Count);