AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Dateipath wird bei der Speicherung nicht erkannt
Thema durchsuchen
Ansicht
Themen-Optionen

Dateipath wird bei der Speicherung nicht erkannt

Ein Thema von Mariaki · begonnen am 31. Mär 2010 · letzter Beitrag vom 1. Apr 2010
Antwort Antwort
Benutzerbild von Mariaki
Mariaki

Registriert seit: 21. Sep 2008
64 Beiträge
 
RAD-Studio 2010 Arc
 
#1

Dateipath wird bei der Speicherung nicht erkannt

  Alt 31. Mär 2010, 21:40
Hi,
ich wollte die Einstellungen meines Programms speichern.
Dazu macht ich dies:
Delphi-Quellcode:
...

Type
  REinst = record
    Aktiv, Tray, Fenster, IndiB, WinStart :boolean;
    IndiS :String[255];
    AutoUp :integer;
  end;

...

implementation

Var
  Einst :REinst;

...

procedure TMainForm.BtnClick(Sender: TObject);
Var
  f : file of REinst;
  Path : string;
begin
  with Einst do
  begin
//Daten in "Einst" speichern
  end;
  Path := GetSpecialFolder(CSIDL_APPDATA)+'\MariakiDvlpmnt\Wecker\Einst.dat';
  AssignFile(f, Path);
  ReWrite(f);
  Write(f,Einst);
  CloseFile(f);
end;
Nun erhalte ich aber bei
"ReWrite(f)"
die Fehlermeldung:
"Ungültiger Dateiname - %s".
Ich weiß nicht woran das liegen kann.

Ich habe mir auch schon "Path" mittels "Showmessage" anzeigen lassen.. ist ganz normal ("C:\Users\Mariaki\AppData\Roaming\Tmp\Einst.da t")
Ich hab auch schon versuch "Path" als PChar zu deklarieren.. genau das gleiche.

Ich hoffe ihr könnt helfen.

Gruß Mariaki
Benedikt
Warum merken die ganzen Christen eigentlich nicht, dass Gott veraltet ist. Zur Zeit von Jesus war er ein gutes Medium um Moral zu verbreiten.. aber Heute?!?
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Dateipath wird bei der Speicherung nicht erkannt

  Alt 31. Mär 2010, 22:18
Hallo,

ich bin mir nicht ganz sicher, aber müsste nicht in deinem Fall, "f"vom Type file oder Textfile sein...
"f" ist bei Dir ja eine Record. Sorry, bin mir nicht sicher ob ich da richtig liege, aber Du kannst es ja mal prüfen...

Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Mariaki
Mariaki

Registriert seit: 21. Sep 2008
64 Beiträge
 
RAD-Studio 2010 Arc
 
#3

Re: Dateipath wird bei der Speicherung nicht erkannt

  Alt 31. Mär 2010, 22:27
Ist doch:
Delphi-Quellcode:
Var
  f : file of REinst;
Benedikt
Warum merken die ganzen Christen eigentlich nicht, dass Gott veraltet ist. Zur Zeit von Jesus war er ein gutes Medium um Moral zu verbreiten.. aber Heute?!?
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Dateipath wird bei der Speicherung nicht erkannt

  Alt 31. Mär 2010, 22:38
Du hast recht.

Ich habe das ganze gerade mal bei mir nachgebaut. Es stimmt irgendewas mit deinem Dateinamen nicht. Mit folgender Funktion geht es bei mir.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ShlObj, ShellAPI, ActiveX;

Type
  REinst = record
    Aktiv, Tray, Fenster, IndiB, WinStart :boolean;
    IndiS :String[255];
    AutoUp :integer;
  end;

type
  TForm1 = class(TForm)
    btn: TButton;
    procedure btnClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
Var
  Einst :REinst;
function GetSpecialFolder (aFolder: Integer): String;
var
  pIdL: PItemIDList;
  Path: Array [0..Max_Path] of Char;
  Allocator: IMalloc;
begin
  // ItemIdList für den Ordner holen
  SHGetSpecialFolderLocation (0, aFolder, pIdL);

  // ItemIdList in String umwandeln lassen
  SHGetPathFromIDList (pIDL, Path);

  // Speicher wieder freigeben
  if Succeeded (SHGetMalloc (Allocator)) then
    begin
      Allocator.Free (pIdL);
      {$IFDEF VER100}
      Allocator.Release;
      {$ENDIF}
    end;
  Result := Path;
end;

procedure TForm1.btnClick(Sender: TObject);
Var
  f : file of REinst;
  Path : string;
begin
  with Einst do
  begin
//Daten in "Einst" speichern
  end;
  Path := GetSpecialFolder(CSIDL_APPDATA)+'\Einst.dat';
  AssignFile(f, Path);
  ReWrite(f);
  Write(f,Einst);
  CloseFile(f);
end;

end.
Irgendwas stört in an folgendem Teil....

Code:
\MariakiDvlpmnt\Wecker\
Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Mariaki
Mariaki

Registriert seit: 21. Sep 2008
64 Beiträge
 
RAD-Studio 2010 Arc
 
#5

Re: Dateipath wird bei der Speicherung nicht erkannt

  Alt 31. Mär 2010, 22:46
Ah.. wie doof.. der Ordner hat nicht existiert, und dann geht´s nicht..^^
ty
Benedikt
Warum merken die ganzen Christen eigentlich nicht, dass Gott veraltet ist. Zur Zeit von Jesus war er ein gutes Medium um Moral zu verbreiten.. aber Heute?!?
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Dateipath wird bei der Speicherung nicht erkannt

  Alt 1. Apr 2010, 08:14
Hallo Mariaki,

du solltest überprüfen, ob der Ordner existiert, und diesen ansonsten erstellen lassen...

Delphi-Quellcode:
var Dir : string;

Dir := 'MeinOrdner\MeinUnterordner';

if NOT DirectoryExists(Dir) then
  ForceDirectories(Dir);
Prüfen ob ein Ordner existiert kannst du mit...
DirectoryExists(Ordnername); Einen neuen Ordner anlegen mit...
CreateDir(Ordnername); Oder wie im Beispiel mit der Funktion
ForceDirectories(Odnername); Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Dateipath wird bei der Speicherung nicht erkannt

  Alt 1. Apr 2010, 10:39
Wenn man MSDN-Library durchsuchenSHGetFolderPath benutzt, kann man in den Flags angeben, dass der Ordner ggf. erstellt werden soll (CSIDL_FLAG_CREATE).
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
Benutzerbild von Mariaki
Mariaki

Registriert seit: 21. Sep 2008
64 Beiträge
 
RAD-Studio 2010 Arc
 
#8

Re: Dateipath wird bei der Speicherung nicht erkannt

  Alt 1. Apr 2010, 11:20
Jaja.. ich weiß wie das geht.. ich hab nur nicht daran gedacht..
Benedikt
Warum merken die ganzen Christen eigentlich nicht, dass Gott veraltet ist. Zur Zeit von Jesus war er ein gutes Medium um Moral zu verbreiten.. aber Heute?!?
  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 20:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz