Thema: Delphi E/A beim Textspeichern

Einzelnen Beitrag anzeigen

moperswings

Registriert seit: 27. Mai 2004
Ort: Bad Sooden-Allendorf
240 Beiträge
 
Delphi 6 Professional
 
#1

E/A beim Textspeichern

  Alt 12. Apr 2007, 16:53
Ein Hallo an ALLE,

Ich versuche einen Text zu speichern und bekomme immer - je nachdem welche Variante ich probiere, E/A 32, 104, 105. Ich seh aber den Fehler nicht! Könnt Ihr mal kurz einen Blick drauf werfen, vielleicht sieht ja jemand, woran es hakt!
Viele Grüsse, moperswings
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
        Memo1.SelStart := 3;
end;

procedure TForm1.Memo1OnKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
        selstart: integer;
        TempStr2: PChar;
begin
        if key = VK_RETURN then
        begin
        tempStr2 := '</p>';

        SendMessage(Memo1.Handle, EM_Getsel, longint(@selstart), 0);
        SendMessage(Memo1.Handle, EM_Replacesel, 0, LongInt(TempStr2));
        SendMessage(Memo1.Handle, EM_Setsel, selstart + 4, Selstart + 4);
        key := 0;
        end;
end;

procedure TForm1.Memo1OnKeyUP(Sender: TObject; var Key: Word; Shift: TShiftState);
var
        selstart: integer;
        TempStr1: PChar;
begin
        if key = VK_RETURN then
        begin
        tempStr1 := '

';

        SendMessage(Memo1.Handle, EM_Getsel, longint(@selstart), 0);
        SendMessage(Memo1.Handle, EM_Replacesel, 0, LongInt(TempStr1));
        SendMessage(Memo1.Handle, EM_Setsel, selstart + 4, Selstart + 3);
        key := 0;
        end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
        f: textfile;
        dateiname: string;
        count: integer;
        p: string;
begin
        dateiname := 'daten.html';
        Assignfile(f, dateiname);
        {$i-}
        rewrite(f);
        {$i+}
        If IOResult <> 0 then begin
        ShowMessage('Fehler1');
        Exit;
        End;
        Writeln(f, Memo1.Text);
        closefile(f);

        count := 0;
        Assignfile(f, dateiname);
        FileMode := fmOpenRead;
        {$i-}
        reset(f);
        {$i+}
        If IOResult <> 0 then begin
        ShowMessage('Fehler2');
        Exit;
        End;

        While not EOF(f) do begin
        readln(f);
        inc(count);

        p := '</p>';

          if count = 0 then begin
          Writeln(f, Memo1.Text + p);
          closefile(f);
          end
          else
          if count >= 1 then begin
          Memo1.Lines.Delete(Memo1.Lines.Count - 1);
          Writeln(f, Memo1.Text + p);
          closefile(f);
          end;
        end;
end;
end.
  Mit Zitat antworten Zitat