Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Letztes Zeichen eines Strings überprüfen?


Thunder00 - Sa 28.12.02 03:19
Titel: Letztes Zeichen eines Strings überprüfen?
Hallo,

Ich habe unter Delphi 7 ein LabeledEdit, wo man einen Pfad zu einem Verzeichnis eintippen soll bzw. das über ein Windows-Dialog auswählen kann.

Über dem Windowsdialog ist das auch echt ne feine Sache. Die Datei die aus dem Verzeichnis gestartet werden soll hände ich dann einfach an den String dran:

Quelltext
1:
2:
3:
4:
5:
6:
var s: string; p: pchar;
begin
  s := LabeledEdit1.Text + ' \proggi.exe'
  p := PChar(s);
  WinExec(p, sw_show);
end;

So soll das alles aussehen. Doch wenn in LabeledEdit1.Text der pfad eingetippt wird und dann ein " \ " dahinter gesetzt wird ist es anstatt:
c:\proggi\proggi.exe
c:\proggi\\proggi.exe

Deswegen muss ich wissen, ob das letzte zeichen ein " \ " ist.

Wie?? Ich weiss, das man mit String[x] über das x ein bestimmtes zeichen lesen kann, nur wie finde ich raus, welche nummer das letzte Zeichen hat??

Bitte helft mir.
Vielen Dank im Voraus,
Andreas


chefkoch - Sa 28.12.02 03:27

guten morgen!


Quelltext
1:
2:
  
if edit1.text[length(edit1.text)] <> '\' then edit1.text := edit1.text + '\'



fertisch is


cya

chefkoch


Delete - Sa 28.12.02 06:56

Und nimm bitte statt WinExec Shellexecute oder CraeteProcess. WinExec ist nur noch aus kompatibiltäts Grunden vorhanden und von Micosoft als obsolet gekennzeichnet, das heißt in zukünftigen OS Versionen könnte es nicht mehr vorhanden sein.


Thunder00 - Sa 28.12.02 15:35
Titel: Vielen Dank
Vielen Dank für eure Hilfe. Ich kann noch nicht so gut programmieren und den WinExec hab ich von meinem Vater.

Wie sind ShellExecute und CreateProc den aufgebaut?? Wie sehen da die Parameter aus??

Gruß,
Andreas


Anonymous - Sa 28.12.02 15:46

http://mitglied.lycos.de/popov3/pub/topten/faq.txt

Tip 2


Delete - Sa 28.12.02 15:49

Zu Shellexecute findest du hier was im Forum.


smiegel - So 29.12.02 11:31

Hallo,

um sicherzustellen, dass ein Backslash am Ende einer Pfadangabe steht, geht mit Delphi-Bordmitteln:


Quelltext
1:
2:
3:
4:
5:
Delphi 7:
  Result:=IncludeTrailingPathDelimiter(ExcludeTrailingPathDelimiter(aName));

Delphi 5:
  Result:=IncludeTrailingBackslash(ExcludeTrailingBackslash(aName));


Näheres dazu, in der Delphi-Hilfe.