AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Einzelne Elemente aus Datei auslesen und in Datei Speichern [UPDATED QUESTION]
Thema durchsuchen
Ansicht
Themen-Optionen

Einzelne Elemente aus Datei auslesen und in Datei Speichern [UPDATED QUESTION]

Ein Thema von Obelisk2k5 · begonnen am 20. Jun 2010 · letzter Beitrag vom 23. Jun 2010
Antwort Antwort
Obelisk2k5

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

AW: Einzelne Elemente aus Datei auslesen und in Datei Speichern

  Alt 20. Jun 2010, 23: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 08:55 Uhr) Grund: code-tags durch delphi-tags ersetzt - nächstes mal bitte delphi-tags wählen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#2

AW: Einzelne Elemente aus Datei auslesen und in Datei Speichern [UPDATED QUESTION]

  Alt 21. Jun 2010, 08:15
Bei isreadonly scheinen da ein paar begins und ends zu fehlen (zumindest lässt die Einrückung darauf schließen). Bei writetofile benutzt Du vermutlich einen falschen Index, da dynamische Arrays immer 0-indiziert sind, d.h. das erste Element hat den Index 0 und das letzte den Index Count - 1.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#3

AW: Einzelne Elemente aus Datei auslesen und in Datei Speichern [UPDATED QUESTION]

  Alt 22. Jun 2010, 19:31
isreadonly:
Wenn der Code sonst mehrdeutig wäre, gehört ein ELSE immer zum LETZTEN IF, zu dem es passen könnte.
Wenn also FileExists(filename) oder FileIsReadOnly(fileName) als Ergebnis false liefern, wird also der Rückgabewert der Funktion undefiniert sein, die ersten beiden IF haben kein ELSE.

edit:
könnte man meinen, wenn man Deiner Einrückung glaubt.

Aber in Wirklichkeit ist das ganze geschachtelte if statement rein dummy, weil das letzte Statement der Funktion wird immer aufgerufen und überschreibt das Result, egal was vorher bei den ifs berechnet worden ist.
  Mit Zitat antworten Zitat
Obelisk2k5

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

AW: Einzelne Elemente aus Datei auslesen und in Datei Speichern [UPDATED QUESTION]

  Alt 23. Jun 2010, 14:44
Danke für die Hilfe, jetzt funktioniert alles wie es soll und ich kann mich dem nächsten Problem witmen.
  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 08:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz