Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ChangeFileExt funktioniert bei paar Usern meines Apps nicht (https://www.delphipraxis.net/70757-changefileext-funktioniert-bei-paar-usern-meines-apps-nicht.html)

Amnon82 4. Jun 2006 10:31


ChangeFileExt funktioniert bei paar Usern meines Apps nicht
 
Ihr kennt doch sicherlich die Funktion "ChangeFileExt".
Diese benutze ich in meinen Tools.
Nun hab ich einen spanischen User, bei dem diese Funktion nicht funktioniert und somit in meinem Programm zu Problemen führt.
Woran kann das liegen, das "ChangeFileExt" nicht funtzt, bzw. was kann man machen, um es doch so hinzubekommen?

marabu 4. Jun 2006 10:37

Re: ChangeFileExt funktioniert bei paar Usern meines Apps ni
 
Hallo.

Vielleicht liegt es doch nicht an der Prozedur, sondern an den übergebenen Argumenten.

Grüße vom marabu

jfheins 4. Jun 2006 10:39

Re: ChangeFileExt funktioniert bei paar Usern meines Apps ni
 
Zeig mal deinen Aufrufcode (und wenn möglich die übergeben Argumente die zu der "Fehlfunktion" führen ;))

Amnon82 4. Jun 2006 10:52

Re: ChangeFileExt funktioniert bei paar Usern meines Apps ni
 
normalerweise so:

Delphi-Quellcode:
S_ORG_FILENAME:=OD_Input_file.FileName;
M_AVISYNTH.Lines.savetoFile(ChangeFileExt(E_Work_folder.text+extractfilename(OD_Input_file.FileName),'_AQ3_SVCDRESIZED.avs'));
OD_Input_file.FileName:=(ChangeFileExt(E_Work_folder.text+extractfilename(OD_Input_file.FileName),'_AQ3_SVCDRESIZED.avs'));
if pos(S_ORG_FILENAME,OD_Input_file.FileName) > 0 
then
begin
M_Log.lines.add(TimeToStr(time)+' - '+DateToStr(Date)+' >> Error: Renaming of the input-files in AVISynth scripts won''t work on your machine! Report the bug.');
V_RENAMEERROR:=1;
end;

marabu 4. Jun 2006 10:57

Re: ChangeFileExt funktioniert bei paar Usern meines Apps ni
 
Sobald jemand beim Umbenennen dem alten Namen einfach einen Prefix verpasst, wird dein Fehlerhinweis ausgegeben. Soll das wirklich so sein?

marabu

Amnon82 4. Jun 2006 11:25

Re: ChangeFileExt funktioniert bei paar Usern meines Apps ni
 
Mein Programm bearbeitet verschiedene Video-Formate. AVI-Dateien machen Probleme.
Ich hab folgenden Programmteil, der dann nicht klar kommt:

Delphi-Quellcode:
if not pos(uppercase('.avs'),uppercase(M_AVISYNTH.Lines[i])) > 0
    then
    if (pos(uppercase('Import'),uppercase(M_AVISYNTH.Lines[i])) > 0) or (V_RENAMEERROR=1)
    then
    M_Log.lines.add(TimeToStr(time)+' - '+DateToStr(Date)+' >> Fixaround: Try to fix rename-bug. Please preview your AVSScript.')
    else
    begin
      if pos(uppercase('.avi'),uppercase(M_AVISYNTH.Lines[i])) > 0
      then
      begin
        if pos(uppercase('audio=false'),uppercase(M_AVISYNTH.Lines[i])) > 0
        then
          M_Log.lines.add(TimeToStr(time)+' - '+DateToStr(Date)+' >> Found Audiofix in '''+extractfilename(OD_Input_file.Filename)+'')
        else
        begin
          M_Log.lines.add(TimeToStr(time)+' - '+DateToStr(Date)+' >> Added Audiofix to '''+extractfilename(OD_Input_file.Filename)+'');
          M_AVISYNTH.Lines[i]:=StringReplace(M_AVISYNTH.Lines[i], ')', ',audio=false)', [rfReplaceAll]);
          M_AVISYNTH.Lines.savetoFile(OD_Input_file.Filename);
          M_AVISYNTH.Clear;
          M_AVISYNTH.Lines.LoadFromFile(OD_Input_file.Filename);
        end;
      end;
    end;
da ich zuvor, falls die Quelle eine AVI-Datei war, folgendes ausgeführt hatte:

Delphi-Quellcode:
if pos(uppercase('.avi'),uppercase(OD_Input_file.FileName)) > 0
  then
  begin
    M_AVISYNTH.Lines.Clear;
    M_AVISYNTH.lines.Add('# -= AviSynth script by '+caption+' =-');
    M_AVISYNTH.lines.Add('# -= Remove Audio =-');
    M_AVISYNTH.lines.Add('AVISource("'+OD_Input_file.FileName+'",pixel_type="YUY2",audio=false)');
    avssource:=OD_Input_file.FileName;
    S_ORG_FILENAME:=OD_Input_file.FileName;
    M_AVISYNTH.Lines.savetoFile(ChangeFileExt(avssource,'_AQ3_NOAUDIO.avs'));
    OD_Input_file.FileName:=(ChangeFileExt(avssource,'_AQ3_NOAUDIO.avs'));
Ich denke, dass ich mit dem Fixaround das Problem schon gelöst habe, aber trotzdem frage ich mich, warum die Funktion "ChangeFileExt" bei mir und bei meinem Lead-Tester funktioniert, aber beim Spanier nicht. Welche Einstellungen könnte er haben, das Renaming nicht bei ihm funktioniert ...

Zur Zeit hab ich die Messages in der Log der letzten Nightly Build von AutoQ3. Mal sehen, ob ich diese rausnehme. Der Spanier muss mir ja auch noch zurück mailen, obs jetzt bei ihm geht.

Amnon82 5. Jun 2006 10:49

Re: ChangeFileExt funktioniert bei paar Usern meines Apps ni
 
Mein spanischer User hat zurückgemailt. Er hat immer noch Probleme. Kann man "ChangeFileExt" durch was anderes ohne großen Aufwand ersetzen?

marabu 5. Jun 2006 11:20

Re: ChangeFileExt funktioniert bei paar Usern meines Apps ni
 
Hallo,

ChangeFileExt() dürfte dein Problem nicht sein. Schon in Beitrag #2 habe ich vermutet, dass es die Argumente sind, die Aufschluss über die Fehlerursache geben werden. Eventuell hat dein spanischer Anwender die maximal zulässige Namens- bzw Pfadlänge überschritten.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:10 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