IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Guillemets mal placé pour commande FFmpeg, Windows 11 D6


Sujet :

Delphi

  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 520
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 520
    Par défaut Guillemets mal placé pour commande FFmpeg, Windows 11 D6
    Bonjour à toutes et à tous,

    Dans mes essais, j'aimerai faire la conversion d'un format à un autre format depuis un dossier créé mais pas de résultat.

    Sans inclure le dossier, la conversion se fait directement dans le répertoire de l'application, je pense que c'est à cause de guillemets mal placé ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
     Dir := chappli +  'PHOTO_JPG' ;
     
     ForceDirectories(Dir);
     
     MonFichier := '"'+Edname.text+'"' ; //Fichier .bmp
     
     MonFichierbis := '"'+Edname2.text+'"' ; //Fichier .jpg
     
     fichier := 'ffmpeg -i '+pchar(MonFichier)+'  '+Dir+'  '+pchar(MonFichierbis)+'' ;
    Fonctionne directement dans le même répertoire sans placer le "Dir".

    Merci si quelqu'un voit l'erreur.

    @+,

    cincap

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    Juin 2002
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2002
    Messages : 438
    Par défaut
    Tu as essayé comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fichier := 'ffmpeg -i '+pchar(MonFichier)+'  "'+Dir+'"  "'+pchar(MonFichierbis)+'"' ;
    Je me suis déjà bagarré avec les double cotes pour pouvoir passer des espaces dans ce type de commande.

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 520
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 520
    Par défaut
    Bonjour à toutes et à tous,

    @ Bernard B, merci de ta suggestion, tu peus pas savoir toutes les combinaisons que j'ai déjà testées sans succès.

    Cela ne fonctionne pas, l'application ne bloque pas et la conversion est nulle.

    @+,

    cincap

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 520
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 520
    Par défaut
    @ Bernard B, par contre si je met le nom de fichier en dur, ceci fonctionne ainsi que la conversion.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fichier := 'ffmpeg -i '+pchar(Monfichier)+' "'+Dir+'\Test.jpg"' ;
    Donc si j'utilise "Monfichierbis" à la bonne place cela devrait fonctionner.

    Je continue aussi à chercher mais avec Norton 360, il analyse chaque fois l'application avant de la faire fonctionner donc perte de temps.

    @+,

    cincap

  5. #5
    Membre confirmé

    Profil pro
    senior scientist
    Inscrit en
    Mai 2003
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : senior scientist

    Informations forums :
    Inscription : Mai 2003
    Messages : 81
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Pour Delphi 7 je ne sais pas, mais les Delphis plus récents proposent la fonction QuotedStr (System.SysUtils).
    Quoi qu'il en soit, dans cette fonction, c'est codé ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Result := '''' + Result + '''';
    alx.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    Juin 2002
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2002
    Messages : 438
    Par défaut
    Voici une ligne de commande que j'utilise et qui fonctionne !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LanceProcessDos(FFMpeg+' -i "'+FichierVideo+'" -frames 1 -f image2 "'+RepPhotosExtraites+'0000.jpg"',True);
    FFMpeg est une string qui contient le chemin d'accès complet à l'exe encadré de double cote.
    FichierVideo et RepPhotosExtraites sont aussi des string, mais par contre attention je ne suis pas en D6 mais en D11.3 Community

    LanceProcessDos utilise TDosCommand

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 520
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 520
    Par défaut
    @ Bernard B, c'est bien gentil mais ma commande Dos est correcte c'est toujours celle la que j'utilise et donc je dois trouver le pourquoi du dossier de la conversion ne fonctionne pas alors qu'en dur oui.

    Je vais à l'Hôpital et je verrai cet après-midi.

    @+,

    cincap

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 520
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 520
    Par défaut
    @ Bernard B

    Voici la solution en gardant mon code d'origine:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
     ForceDirectories(Dir);
     
     MonFichier := '"'+Edname.text+'"' ;
     
     MonFichierbis := Edname2.text ; //Modifier
     
     fichier := 'ffmpeg -i '+pchar(Monfichier)+' "'+Dir+'\ '+MonFichierbis+'"' ;
    @+,

    cincap

  9. #9
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    Juin 2002
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2002
    Messages : 438
    Par défaut
    Tu as essayé d'enlever le PChar de MonFichier ? je ne suis pas sur qu'il soit nécessaire à conditions de l'entourer de double cotes

  10. #10
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 867
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 867
    Par défaut
    Tu devrais utiliser Format pour ce genre de chose, cela aide grandement en terme de visibilité


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Dir := chappli +  'PHOTO_JPG' ;
     ForceDirectories(Dir);
     MonFichier := Edname.text; 
     MonFichierbis := Edname2.text ; 
     fichier := Format('ffmpeg -i "%s" "%s\%s"', [MonFichier, Dir, MonFichierbis]);
    Ou Encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Dir := chappli +  'PHOTO_JPG' ;
     ForceDirectories(Dir);
     MonFichier := Edname.text; 
     MonFichierbis := Edname2.text ; 
     fichier := Format('ffmpeg -i "%s" "%s"', [MonFichier, IncludeTrailingPathDelimiter(Dir) + MonFichierbis]); // ou IncludeTrailingBackslash éventuellement en D7
    ou Encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Dir := chappli +  'PHOTO_JPG' ;
     ForceDirectories(Dir);
     MonFichier := Edname.text; 
     MonFichierbis := Edname2.text ; 
     fichier := Format('ffmpeg -i %s %s', [AnsiQuotedStr(MonFichier, '"'), AnsiQuotedStr(IncludeTrailingBackslash(Dir) + MonFichierbisr, '"')]); // AnsiQuotedStr a du justement apparaitre en D7
    Ensuite la conversion string -> PChar, c'est au dernier moment, par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute(0, 'open', PChar(fichier), nil, nil, SW_HIDE);
    Et l'on pourrait grouper tout ça, sans toutes ces variables inutiles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute(0, 'open', PChar(Format('ffmpeg -i "%s" "%s"', [Edname.text, IncludeTrailingBackslash(Dir) + Edname2.text])), nil, nil, SW_HIDE);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute(0, 'open', 'ffmpeg', PChar(Format('-i "%s" "%s"', [Edname.text, IncludeTrailingBackslash(Dir) + Edname2.text])), nil, SW_HIDE);
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  11. #11
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 446
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par Bernard B Voir le message
    je ne suis pas sur qu'il soit nécessaire à conditions de l'entourer de double cotes
    les doubles quotes seront nécessaires si les chemins contiennent des espaces ou autres "subtilités"
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  12. #12
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 520
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 520
    Par défaut
    Bonjour à toutes et à tous,

    @ Tous merci de votre patience et de vos réponses.

    @ ShaiLeTroll, grand merci pour tes suggestions, j'ai adopté le code après le dernier "ou encore" et tout est ok.

    Comme quoi à 72 ans on a encore beaucoup à apprendre (Jean Gabin Je sais).

    Maintenant je vais rester un long moment avant de me connecter et encore merci à tous.

    @+,

    cincap

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/03/2020, 08h54
  2. [MySQL-5.6] Problème pour accéder à MySQL via l'invite de commande de Windows
    Par Malick dans le forum Administration
    Réponses: 1
    Dernier message: 25/07/2014, 19h36
  3. Commande pour distribution de windows
    Par Begsweb dans le forum Windows 7
    Réponses: 2
    Dernier message: 10/02/2014, 01h32
  4. Commande DOS Windows 7 pour impression
    Par FibiIA dans le forum Windows 7
    Réponses: 3
    Dernier message: 04/03/2012, 16h09
  5. Commandes DDE pour l'explorateur Windows
    Par demss dans le forum C++
    Réponses: 4
    Dernier message: 19/07/2008, 02h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo