AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) ShellExecute Problem mit zweitem Parameter
Thema durchsuchen
Ansicht
Themen-Optionen

ShellExecute Problem mit zweitem Parameter

Ein Thema von markus5766h · begonnen am 7. Jan 2017 · letzter Beitrag vom 7. Jan 2017
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#11

AW: ShellExecute Problem mit zweitem Parameter

  Alt 7. Jan 2017, 14:32
Ist da zwischen 'JapanTour2012' und '.avi' ein Leerzeichen dazwischen?
Dann ist der Fehler gefunden...
Nein, es ist kein Leerzeichen dazwischen.
Da hat nur das Forum zugeschlagen, welches zu lange "Wörter" trennt, damit ein Zeilenumbruch in die Anzeige rein kann.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#12

AW: ShellExecute Problem mit zweitem Parameter

  Alt 7. Jan 2017, 15:39
Ist da zwischen 'JapanTour2012' und '.avi' ein Leerzeichen dazwischen?
Dann ist der Fehler gefunden...
Nein, es ist kein Leerzeichen dazwischen.
Da hat nur das Forum zugeschlagen, welches zu lange "Wörter" trennt, damit ein Zeilenumbruch in die Anzeige rein kann.

OK, nichts für ungut..

Nur Leerzeichen in Parameter sind ja Trennen für 'verschiedene' Parameter..

Deshalb geht es mit Anführungszeichen, da dann die Leerzeichen ein Teil 'eines' Parameters (eingeschlossen in den ") sind..
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#13

AW: ShellExecute Problem mit zweitem Parameter

  Alt 7. Jan 2017, 19:03
Ich hab's jetzt generell zwischen Anführungszeichen gesetzt,
löst erst mal das Problem.
Markus H.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#14

AW: ShellExecute Problem mit zweitem Parameter

  Alt 7. Jan 2017, 19:14
Das stimmt und dagegen hab ich auch nichts gesagt.

Nur da hier Mehrere auf dieses eine nichtexistente Leerzeichen eingingen, gedachte ich mal zu erwähnen, daß Dieses hier nur angezeigt wird, aber nicht im Namen vorkommt.
(das erkennt man gut, wenn man den Ursprungspost zitieren will)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#15

AW: ShellExecute Problem mit zweitem Parameter

  Alt 7. Jan 2017, 19:19
Das stimmt und dagegen hab ich auch nichts gesagt.

Nur da hier Mehrere auf dieses eine nichtexistente Leerzeichen eingingen, gedachte ich mal zu erwähnen, daß Dieses hier nur angezeigt wird, aber nicht im Namen vorkommt.
(das erkennt man gut, wenn man den Ursprungspost zitieren will)
Ich muss zugeben : hab' meine Ursprungsdatei nun nicht mehr geprüft, da ein Leerzeichen evt. auch in anderen Dateinamen
stecken könnte - daher habe ich es erst mal als Lösung genommen, inzwischen (zwei Stunden später) entferne ich diese
(und evt. andere unliebsame Zeichen) mittels StringReplace.
Ein ... PChar(Chr(34) + Media + Chr(34)) kann allerdings nicht schaden . . .
Markus H.
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#16

AW: ShellExecute Problem mit zweitem Parameter

  Alt 7. Jan 2017, 19:43
Zwei Funktionen zur Auswahl:
Delphi-Quellcode:
function RemoveSpaces(const s: string): string;
var
len, p: integer;
pc: PChar;
const
WhiteSpace = [#0, #9, #10, #13, #32];
begin
len := Length(s);
SetLength(Result, len);
pc := @s[1];
p := 0;
while len > 0 do
begin
if not (pc^ in WhiteSpace) then
begin
inc(p);
Result[p] := pc^;
end;
inc(pc);
dec(len);
end;
SetLength(Result, p);
end;

function DeleteSpaces(Str: string): string;
var i: Integer;
begin
i:=0;
while i<=Length(Str) do
if Str[i]=' then Delete(Str, i, 1)
else Inc(i);
Result:=Str;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.text:= RemoveSpaces(Edit1.text);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Edit2.text:= DeleteSpaces(Edit1.text);
end;
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#17

AW: ShellExecute Problem mit zweitem Parameter

  Alt 7. Jan 2017, 19:57
Ein ... PChar(Chr(34) + Media + Chr(34)) kann allerdings nicht schaden . . .
Ich biete PChar(AnsiQuotedStr(Media, '"')) . Finde ich besser lesbar, weil man nicht überlegen muss, was denn nun Chr(34) ist. Trotz des "Ansi" im Funktionsnamen eignet sich die Funktion für Unicode-Strings, wenn man die aus SysUtils verwendet - siehe Delphi-Referenz durchsuchenAnsiQuotedStr.

Grüße
Dalai
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#18

AW: ShellExecute Problem mit zweitem Parameter

  Alt 7. Jan 2017, 20:06
Zwei Funktionen zur Auswahl:
...
[/delphi]
Code:
. . .
const
  OldString : Array[1..3] = (Chr(32), Chr(10), Chr(19));
  NewString : String = Chr(95);
var
  i : Byte;
  Destination : String;
. . .
  Destination := [irgendwas];
  for i := 1 to 3 do Destination := ReplaceString(Destination, OldString[i], NewString, [rfReplaceAll, rfIgnoreCase]);
. . .
finde ich persönlich kürzer und auch verständlich
Markus H.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 19:24 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