AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Externes Programm ausführen

Ein Thema von Willie1 · begonnen am 11. Dez 2017 · letzter Beitrag vom 17. Jan 2018
Antwort Antwort
Willie1

Registriert seit: 28. Mai 2008
698 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

AW: Externes Programm ausführen

  Alt 18. Dez 2017, 16:16
Hallo, ich habe mir Folgendes ausgedacht, es funktioniert zuerst mal. Nach den vielen Pleiten vielleicht ein Fortschritt. In meinem Archiv gefunden.

Delphi-Quellcode:
  function Ex195(const s: string): string;
  var // Die deutschen Umlaute + ß werden falsch dargestellt (Unicode)
    po: Integer;
    ch: Char; // Durch Ausprobieren habe ich die Codes herausbekommen
  begin // erst #195 dann Zeichen ... - 16-10-2008
    Result:=s; // Utf8ToAnsi() von Delphi macht genau das
    po:=Pos(#195,Result);
    while (Length(Result) > 0) and (po > 0) do begin
      ch:=Result[Po+1];
      System.Delete(Result,po,2);
      case ch of
        #$84: ch:='Ä';
        #$96: ch:='Ö';
        #$9C: ch:='Ü';
        #$A4: ch:='ä';
        #$B6: ch:='ö';
        #$BC: ch:='ü';
        #$9F: ch:='ß';
        else ch:='.'
      end;
      System.Insert(ch,Result,po);
      po:=Pos(#195,Result,Succ(po))
    end
  end;
Willie.

Geändert von Willie1 (18. Dez 2017 um 17:38 Uhr) Grund: Rechtschreibung
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
570 Beiträge
 
Delphi 12 Athens
 
#2

AW: Externes Programm ausführen

  Alt 18. Dez 2017, 19:04
In dem von dir angehängten Bild finde ich nicht die Informationen, die du ausgelesen hast. Kannst du mal das Original einstellen oder zumindest eins, in dem alle Informationen erhalten geblieben sind?

PS: Ich denke mal, ich habe die Lösung gefunden, und zwar hier. Beachte mal "Reply #9". Obwohl "UTF8" standardmäßig eingestellt sein soll, muss es mit angegeben werden.
Probiere mal folgende beiden Kommandos:
exiftool.exe -charset IPTC=UTF8 -city=Köln -lang de C:\Temp\K-Dom.jpg dann
exiftool.exe C:\Temp\K-Dom.jpg -w! .txt .
Wenn du meine Lösung mit Delphi verwendest, dann musst du  -charset IPTC=UTF8 nochmal explizit angeben:
exiftool.exe -k -a -u -g1 -lang de -charset IPTC=UTF8 C:\Temp\K-Dom.jpg

Geändert von Benmik (18. Dez 2017 um 19:35 Uhr) Grund: Lösung gefunden
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
698 Beiträge
 
Delphi 10.1 Berlin Starter
 
#3

AW: Externes Programm ausführen

  Alt 19. Dez 2017, 11:05
Hallo
-charset IPTC=UTF8 in den Parameter aufnehmen, hilft bei mir nicht!!!
s:=UTF8ToAnsi(ETout.Text); Damit funktioniert es! Bei Delphi 2005 gab es diese Funktion noch nicht, deshalb mein Eigenkonstrukt, das ebenfalls funktioniert. Warum sollte ich das nicht nutzen. Ich habe die Exiftool-Textdatei vom JPG-Bild mit einem Hexeditor ausgewertet.
Wiellie.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#4

AW: Externes Programm ausführen

  Alt 19. Dez 2017, 12:30
Delphi 7 hatte doch UTF8ToAnsi schon in der System.pas. Und bei Delphi 2005 soll das nicht mehr dabei sein?

http://www.delphipraxis.net/41960-ut...vertieren.html
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
698 Beiträge
 
Delphi 10.1 Berlin Starter
 
#5

AW: Externes Programm ausführen

  Alt 19. Dez 2017, 17:09
Ok Delphi.Narium, da magst du recht haben. Auf jeden Fall klappt die Übersetzung.
Benmik, ich hab's mit Copy and Paste übertragen, es geht nicht. Ich weiß Programme mit Parameter zu bedienen ist mühsam!

Geändert von Willie1 (19. Dez 2017 um 17:13 Uhr)
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
570 Beiträge
 
Delphi 12 Athens
 
#6

AW: Externes Programm ausführen

  Alt 19. Dez 2017, 19:07
Delphi-Quellcode:
  procedure FühreTestCodeAus;
  var ETool,ETCmd1,ETCmd2,ETCmd3,Datname:string; AusgabeListe,FehlerListe:TStringList;
  begin
    AusgabeListe := TStringList.Create;
    FehlerListe := TStringList.Create;
    ETool := 'C:\Program Files (x86)\EXIFTool\exiftool.exe ';
    ETCmd1 := ' -charset IPTC=UTF8 -city=Köln -lang de ';
    ETCmd2 := ' -k -a -u -g1 -lang de -charset IPTC=UTF8 ';
    ETCmd3 := ' -w! .txt ';
    Datname := '"C:\Temp\K-Dom.jpg"';
    Try
      ExecuteET(ETool + ETCmd1 + Datname,'',AusgabeListe,FehlerListe);
      ExecuteET(ETool + ETCmd2 + Datname,'',AusgabeListe,FehlerListe);
      ExecuteET(ETool + ETCmd3 + Datname,'',AusgabeListe,FehlerListe);
    Finally
      AusgabeListe.Free;
      FehlerListe.Free;
    End;
  end;
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
698 Beiträge
 
Delphi 10.1 Berlin Starter
 
#7

AW: Externes Programm ausführen

  Alt 20. Dez 2017, 16:39
Hallo,
ich habe es getestet.
cmd1 ist nicht notwendig. Wenn die deutschen Sonderzeichen korrekt angezeigt werden, dann auch Köln.
cmd 2 läuft, aber die deutschen Sonderzeichen werden nicht umgesetzt. Ich habe sie mit Memo1.Lines.Assign(ETout) übernommen.
cmd3 funktioniert nur dann, wenn ich als Zielordner den Ordner auswähle, in dem sich die Bilddatei befindet.
Ein Unterordner wird angelegt. Aber z.B. %dc:\data\%f.txt führt zu einer Fehlermeldung 1 files could not be read 0 output files created, der Temp-Ordner des BS ebenso.
Die deutschen Sonderzeichen werden richtig angezeigt!

Die Windows Version spielt wohl eine Rolle. Ich habe Windows 10 1709 Built 16299.125.
  Mit Zitat antworten Zitat
Benmik

Registriert seit: 11. Apr 2009
570 Beiträge
 
Delphi 12 Athens
 
#8

AW: Externes Programm ausführen

  Alt 19. Dez 2017, 12:42
Hallo -charset IPTC=UTF8 in den Parameter aufnehmen, hilft bei mir nicht!!!
Naja, wenn es bei mir funktioniert, dann muss es bei dir wohl auch funktionieren. Aber du hast ja eine Lösung gefunden, die dich zufriedenstellt.
Würde mich freuen, wenn du uns weiter auf dem Laufenden hältst.
  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 23:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz