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
Benutzerbild von markus5766h
markus5766h

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

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
 
#2

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 markus5766h
markus5766h

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

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
Benutzerbild von Dalai
Dalai

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

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
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 02:33 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