Einzelnen Beitrag anzeigen

Obelisk2k5

Registriert seit: 20. Jun 2010
14 Beiträge
 
Delphi 2 Desktop
 
#5

AW: Einzelne Elemente aus Datei auslesen und in Datei Speichern

  Alt 21. Jun 2010, 00:59
Hm, Schade, die Datenspeicherung klappt bei mir gar nicht.
Zwar bekomme ich mit nem SaveDialog das Fenster auf, die Datei scheint auch angelegt zu werden, nur ist sie trotzdem nicht existent.

In der Formularunit:

Delphi-Quellcode:
procedure TfrmMain.MnDateispeichernClick(Sender: TObject);
begin
  SaveDialog.Filter := '*lyr';
  SaveDialog.DefaultExt := '*lyr';
  SaveDialog.InitialDir := ExtractFilePath(Application.Exename);
  if SaveDialog.execute then
    if not isreadonly(SaveDialog.FileName) then
     if writeToFile(SaveDialog.FileName)then
        refreshLists; //Erneuert den Inhalt einer listbox, funktioniert auch
end;
isreadonly:

Delphi-Quellcode:
function isReadOnly(fileName: string): boolean;
begin
  if FileExists(filename) then
    if FileIsReadOnly(fileName) then
      if MessageDlg ('Datei ist schreibgeschützt, soll der Schreibschutz entfernt werden ?',
               mtInformation, [mbYes, mbNo], 0) = mrYes then
                begin
                isReadOnly := not FileSetReadOnly(filename, false);
                end
  else
    isReadOnly := true;
    isReadOnly := FileIsReadOnly(fileName)
end;
writetofile

Delphi-Quellcode:
function writeToFile (const myFilename: string): boolean;
var
  handle : file of TElement;
  tempElement : TElement;
  i : longint;
begin
  writeToFile := false;
  try
  AssignFile(handle, myFilename);
    try
      Rewrite(handle);
       for i := 1 to getElementCount do
        begin
          tempElement := getElement(i);
          write(handle, tempElement);
          writeToFile := true;
        end;
    finally
      closeFile(handle);
    end
  except
    on E: EInOutError do showmessage('Datei kann nicht gespeichert werden.')
  end
end;

Ich weiß, es ist viel, aber vielleicht hat ja doch wer Lust, mal reinzuschauen...

Geändert von SirThornberry (21. Jun 2010 um 09:55 Uhr) Grund: code-tags durch delphi-tags ersetzt - nächstes mal bitte delphi-tags wählen
  Mit Zitat antworten Zitat