AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Commandline mit WideString speichern?

Commandline mit WideString speichern?

Ein Thema von Garfield · begonnen am 4. Aug 2007 · letzter Beitrag vom 5. Aug 2007
Antwort Antwort
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#1

Commandline mit WideString speichern?

  Alt 4. Aug 2007, 23:14
Nachdem ich das Problem mit CreateProcessW lösen konnte und sich Verzeichnisnamen mit Unicodezeichen korrekt übergeben lassen, möchte ich die Commandline auch speichern können.

Bei Ansicode-Batchdateien verwende ich eine TStringList, welche mit SaveToFile gespeichert wird. Hier versuchte ich zunächst eine TTNTStringList. Jedoch scheitert die Ausführung anscheinend bereits am Byte Order Mark. Entferne ich dies, scheitert es an den 00, welche den Ansicodezeichen angehängt wurden. Entferne ich diese ebenfalls, werden die Unicodezeichen falsch decodiert. Vermutlich weil TTNTStringList die Codierung falsch erkennt. Bei der Verwendung von TWideStringList dasselbe Bild. Lediglich wenn in der Commandline kein Unicodezeichen enthalten sind, speichert TWideStringList als Ansi und die kann dann ausgeführt werden.

Die Microsoft GUI zu RoboCopy für XP speichert seine Scripts als Commandline. Diese sollen laut Editor UTF-8 kodiert sein. Wird die *.CMD allerdings ausgeführt, werden die Unicodezeichen falsch decodiert. Das es gehen könnte/sollte, zeigt CreateProcessW.

Zum Parsen von WideParamStr gibt es Routinen. Für das Speichern von WideCommandline konnte ich bisher nichts finden. Weiß da jemand Bescheid?
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#2

Re: Commandline mit WideString speichern?

  Alt 5. Aug 2007, 15:33
Die CMD.exe enthält den Parameter
Zitat:
/u

Formatiert die Ausgabe interner Befehle als Pipe oder Datei im Unicode-Format.
Bei Active Directory gibt es verschiedene Stringklassen, so auch String (Unicode).
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:48 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