Einzelnen Beitrag anzeigen

toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#9

Re: M3U Playlist Creator

  Alt 24. Feb 2009, 08:58
Zitat von Hybrid666:
daran scheints nicht gelegen zu haben

die selben errors kommen und dahinter hängt nun noch ein "Ungültiger Dateiname".

Edit:

Okay ich weiß nun woran es liegt: dein programm versucht auf biegen und brechen nach c:\Dokumente und Einstellungen\User\Application Data\PLC\Logs zu schreiben. aber ich hab ein deutsches XP, da heißt er ordner leider "Anwendungsdaten" statt application data. Du solltest vielleicht den pfad %appdata%\PLC\Logs verwenden und %appdata% auflösen, hier ein code wie das geht:
Delphi-Quellcode:
function TForm1.GetDirectory: String;
var
  Appdata : String;
begin
  Appdata := SysUtils.GetEnvironmentVariable('appdata');
  if not DirectoryExists (Appdata + '\PLC') then
    mkdir (appdata + '\PLC');
  if not DirectoryExists (Appdata + '\PLC\Logs') then
    mkdir (appdata + '\PLC\Logs');
  result := Appdata + '\PLC\Logs';
end;
MfG
du hast recht. hab grad mal nachgeguckt. ich habe eine funktion welche mir das Userprofil zurückgibt (aus der Registry):
Delphi-Quellcode:
function getUserProfilePath : String;
begin
    GetEnvironmentVariable('USERPROFILE', cmdBUffer, SizeOf(cmdBuffer)); {Userprofile Variable auslesen}
    result:=cmdBuffer;
    Profilepath:=cmdBuffer;
end;
allerdings hänge ich danach noch fix die tas_AppData konstante an, welche in meiner myGlobals Unit fix definiert ist (ich arbeite immer auf englischen Systemen).

Delphi-Quellcode:
      // Konfiguration einlesen
      getinipath;
      getusername;

      // Verzeichnis prüfen u. erstellen für Logfile Dateien (Profil\Appdata...)
      chkdir(getuserprofilepath+tas_appdata);
myGlobals:

Delphi-Quellcode:
const
  condatei:string = 'plc_init.con';
  inidatei:string = 'plc_init.ini';
  logdatei:string = 'plc_log.log';
  sqlcondatei:string = 'plc_conn.dat';
  expcdatei:string = 'plc_excp.dat';
  logfilesdir:string = '\Application Data\PLC\Logs';
  tas_appdata:string = '\Application Data\PLC';
  m3u_zeile1 = '#EXTM3U';
  m3u_zeile2 = '#EXTINF:';
werde dies umbauen und diese konstanten ins Ini-File auslagern oder aber deine funktion reinhängen...
  Mit Zitat antworten Zitat