Scheiben auf Disk funktioniert nicht mehr in Win7

Für Fragen von Einsteigern und Programmieranfängern...

Scheiben auf Disk funktioniert nicht mehr in Win7

Beitragvon Marc » 3. Aug 2017, 22:25 Scheiben auf Disk funktioniert nicht mehr in Win7

Ich habe grade keine Ahnung was los ist. Mein Programm sollte an verschiedenen Stellen Dateien auf die Disk schreiben.
Aber plötzlich funktioniert nichts mehr. Sind gänzlich normale Schreibzugriffe. Die haben vorher alle funktioniert.

Code: Alles auswählen
 
 Try
  AssignFile(fDefaultsDatei, 'defaults.dat');
 // {$I-}
  ReWrite(fDefaultsDatei); {open file to write}
  Write(fDefaultsDatei,DefaultsData);   {saves the data}
  CloseFile(fDefaultsDatei); {close the file}
 // {$I+}
    except
    // If there was an error the reason can be found here
    on E: EInOutError do
    Memo1.Lines.Add('File error : '+ E.Message);
  end;


Wenn ich so // die Schalter wegmache kriege ich RunError(2)
Wenn die Schalter an sind kriege ich keine gar keine Fehlermeldung.
Das 'e.Message ' scheint so nicht zu funktionieren.
Hab ich was in der IDE vertan? Kennt das jemand?
Hab bei Projekteinstellung mal als Zielsystem win64 angegeben, und win32 GUI Anwendung abgewählt.
Hab auch das Projekt mal umbenannt, hilft alles nichts.
Die Disk ist auch nicht voll oder sowas.
Good code comes from experience, experience comes from bad code.
Marc
 
Beiträge: 148
Registriert: 11. Nov 2016, 14:09
Wohnort: Schweiz
OS, Lazarus, FPC: Linux Mint 18 (WinXP VBox) | 
CPU-Target: 64Bit
Nach oben

Beitragvon theo » 4. Aug 2017, 09:07 Re: Scheiben auf Disk funktioniert nicht mehr in Win7

Schon mal mit einem absoluten Pfad probiert?
Ggf auch in diesem Verzeichnis: http://lazarus-ccr.sourceforge.net/docs ... igdir.html

EInOutError wird afaik nur ausgelöst, wenn I/O checking eingeschaltet ist. Das wird das Problem aber auch nicht lösen, da RunError(2) einfach "File not found ist".
https://www.freepascal.org/docs-html/user/userap4.html
theo
 
Beiträge: 7883
Registriert: 11. Sep 2006, 18:01

Beitragvon Mathias » 4. Aug 2017, 16:59 Re: Scheiben auf Disk funktioniert nicht mehr in Win7

Eine andere Variante ist, die Fehler auf die Klassische Art abzufragen.

Folgender Code gibt bei mir unter Linux ein "Access denied." .
Weil nur den Benutzer Root auf / zugreifen kann.
Code: Alles auswählen
rocedure TForm1.Button1Click(Sender: TObject);
type
  TTest = array[0..4] of byte;
var
  DefaultsData: TTest;
  fDefaultsDatei: file of TTest;
  io: word;
begin
  AssignFile(fDefaultsDatei, '/defaults.dat');
 {$I-}
  ReWrite(fDefaultsDatei); {open file to write}
  Write(fDefaultsDatei, DefaultsData);   {saves the data}
  CloseFile(fDefaultsDatei); {close the file}
 {$I+}
  io := IOResult;
  if io <> 0 then begin
    ShowMessage('File error : ' + IntToStr(io));
  end;
end;

Hier ist der Schlüssel für die Fehlermeldung: https://www.freepascal.org/docs-html/rt ... esult.html

Das wird das Problem aber auch nicht lösen, da RunError(2) einfach "File not found ist".

Ein "File not found" sollte es eigentlich nicht geben, da man eine neue Datei erzeugen will. :roll:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3201
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Marc » 4. Aug 2017, 20:13 Re: Scheiben auf Disk funktioniert nicht mehr in Win7

Danke für die Antworten. Hab heute erst mal Frust geschoben.
Habe das ganze in einer Virtual box (unter Linux) am laufen. Vieleicht ist das das Problem.
Ich versuch das jetzt mal in einer richtigen Windows installation.
Good code comes from experience, experience comes from bad code.
Marc
 
Beiträge: 148
Registriert: 11. Nov 2016, 14:09
Wohnort: Schweiz
OS, Lazarus, FPC: Linux Mint 18 (WinXP VBox) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Marc » 4. Aug 2017, 20:13 Re: Scheiben auf Disk funktioniert nicht mehr in Win7

Ich muss da irgendwie was grausam verhauen haben. Unter Windows habe ich denselben Fehler.
Eigenartigerweise kann mein Programm noch Directories erzeugen. Aber keine Files schreiben.
Ich nehm jetzt eine Vorgängerversion (die läuft) und mach einen Timer der alle paar Min ein File schreibt. Nur zum sehen ob es noch geht.
Zuletzt geändert von Marc am 4. Aug 2017, 20:50, insgesamt 1-mal geändert.
Good code comes from experience, experience comes from bad code.
Marc
 
Beiträge: 148
Registriert: 11. Nov 2016, 14:09
Wohnort: Schweiz
OS, Lazarus, FPC: Linux Mint 18 (WinXP VBox) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Mathias » 4. Aug 2017, 20:17 Re: Scheiben auf Disk funktioniert nicht mehr in Win7

Ich versuch das jetzt mal in einer richtigen Windows installation.

Das kann ich mir schlecht vorstellen, da du die Datei im Ordner erzeugst, in dem auch dein Programm befindet.
Oder hast du bei den Pfaden bei den Project-Einstellungen rum geschraubt ?
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3201
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Marc » 4. Aug 2017, 20:57 Re: Scheiben auf Disk funktioniert nicht mehr in Win7

An den Pfaden habe ich nichts verändert. Ich habe versucht das Projekt mit einem anderen Namen zu speichern. Ausserdem hab ich versucht das Icon (diese Tatze) zu ändern.
Aber alles rückgängig gemacht. Ich vermute jetzt mal einen Fehler in meinem Code. Irgendwo in den Variablen die habe ich in einer separaten Unit.
Wahrscheinlich ist mein Program ungewöhlich, desshalb kriege ich ungewöhnliche Fehlermeldungen.
Ich programmiere einfach von der alten Version aus Schritt für Schritt zur Neuen. Dann sollte ich eigentlich sehen ab wann ich Probleme kriege.
Good code comes from experience, experience comes from bad code.
Marc
 
Beiträge: 148
Registriert: 11. Nov 2016, 14:09
Wohnort: Schweiz
OS, Lazarus, FPC: Linux Mint 18 (WinXP VBox) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Mathias » 5. Aug 2017, 16:16 Re: Scheiben auf Disk funktioniert nicht mehr in Win7

Habe das ganze in einer Virtual box (unter Linux) am laufen. Vieleicht ist das das Problem.

Sowas könnte das Problem sein. Wie hast du es gelöst, das Windows und Linux gleichzeitig auf dein Projekt zugreifen kann. Evtl. eine NAS ?
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3201
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Marc » 6. Aug 2017, 12:00 Re: Scheiben auf Disk funktioniert nicht mehr in Win7

Das ganze ist ein Notebook, XP und Win7 laufen in einer Virtual Box und haben je eine externe Harddisk zugewiesen, die effektiv eine Freigabe ist von Linux.
Aber eben in einer realen Windows7 installation habe ich dasselbe Problem gehabt. Liegt wohl schon eher an meinem Code.
Good code comes from experience, experience comes from bad code.
Marc
 
Beiträge: 148
Registriert: 11. Nov 2016, 14:09
Wohnort: Schweiz
OS, Lazarus, FPC: Linux Mint 18 (WinXP VBox) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Mathias » 6. Aug 2017, 16:48 Re: Scheiben auf Disk funktioniert nicht mehr in Win7

Aber eben in einer realen Windows7 installation habe ich dasselbe Problem gehabt. Liegt wohl schon eher an meinem Code.

In dem Fall schon.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3201
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

• Themenende •

Zurück zu Einsteigerfragen



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste

porpoises-institution
accuracy-worried