Autor Beitrag
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mi 18.05.05 16:27 
Tach Leute,
im Endeffekt wollte ich eine Procedure schreiben, die mir eine Datei verschlüsselt. Das Schreiben von einer Datei in die Nächste klappt, solange ich die markierte Stelle weglasse. Wenn ich sie dazu mache, dann schreibt er den Inhalt der Datei in fs2, unverändert, und beim Beenden des Programms gibts ne ungültige Zeigeroperation. THEORETISCH würde ja aus a b werden und so weiter, aber das klappt nicht.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
Var
    fs, fs2: TFileStream;
    Puffer: Array Of Byte;
    i, size: integer;
Label
    ende;
begin
{...}
        SetLength(Puffer, size+1);
        For i := 0 To size-1 Do
        Begin
            Application.ProcessMessages;
            If stop Then
                Goto ende;
            ProgressBar1.StepIt;
            ProgressBar2.StepIt;
            fs.ReadBuffer(Puffer, 1);
            Puffer[i]:=Puffer[i]+1//hier!
            fs2.WriteBuffer(Puffer, 1);
        End;

Woran könnte es liegen? Ich kenn mich mit Array of Byte und TFileStream nich so dolle aus... Danke schonmal!
[edit: Titel geändert.. :oops:]

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Mi 18.05.05 17:04 
Versuch mal es mal mit:

ausblenden Delphi-Quelltext
1:
SetLength(Puffer, size+2);					


Es müsste daran liegen, dass du auf ein nicht existierendes Elemet zugreifst. Gib mal deine genaue Fehlermeldung durch, wenn es das Problem nicht beseitigt.
JayEff Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mi 18.05.05 17:06 
hm.. einich ja nich, da ich nur auf elemente von 0 bis size-1 zu greife, das array geht aber von 0 bis size. Anbei die Fehlermeldung, auf wunsch. Die kommt immer beim schließen.
Einloggen, um Attachments anzusehen!
_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Mi 18.05.05 17:12 
Ich habe gerade deinen Quelltext noch einmal überdacht. Am Setlength liegt es doch nicht. Mir ist dafür etwas anderes aufgefallen.

user profile iconJayEff hat folgendes geschrieben:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
Var
    fs, fs2: TFileStream;
    Puffer: Array Of Byte;
    i, size: integer;
Label
    ende;
begin
{...}
        SetLength(Puffer, size+1);
        For i := 0 To size-1 Do
        Begin
            Application.ProcessMessages;
            If stop Then
                Goto ende;
            ProgressBar1.StepIt;
            ProgressBar2.StepIt;
            fs.ReadBuffer(Puffer[i]1);
            Puffer[i]:=Puffer[i]+1//hier!
            fs2.WriteBuffer(Puffer[i]1);
        End;


Probier es mal damit. Die Variante ist aber nicht wirklich effektiv. Du solltest lieber immer k*512 Bytes auslesen(k € N). Und ich weiß auch nicht, warum du das in ein Array einspeicherst, wenn du nur 1 Byte ausliest und den dann sofort woanders wieder hinschreibst.
JayEff Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mi 18.05.05 17:24 
LOL???? ok, daran lags oO jetzt klappts... komisch, dass es vorher klappte... oO

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Mi 18.05.05 17:28 
Das Thema hier dürfte dich auch interessieren, damit du deine Performance erheblich bergrößern kannst.