AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Funktion gesucht, die den tatsächlichen Pfadnamen ermittelt
Thema durchsuchen
Ansicht
Themen-Optionen

Funktion gesucht, die den tatsächlichen Pfadnamen ermittelt

Ein Thema von sundance · begonnen am 31. Aug 2016 · letzter Beitrag vom 5. Sep 2016
Antwort Antwort
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

AW: Funktion gesucht, die den tatsächlichen Pfadnamen ermittelt

  Alt 31. Aug 2016, 10:02
Dann schreib dir eine Funktion, die jeden Buchstaben nach eine Backslash groß schreibt.

Die Glaskugel hat ja mal funktioniert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Funktion gesucht, die den tatsächlichen Pfadnamen ermittelt

  Alt 31. Aug 2016, 10:06
Dann schreib dir eine Funktion, die jeden Buchstaben nach eine Backslash groß schreibt.
Das muss ja dann aber auch nicht immer stimmen. Aber ein einfaches Auflisten der Verzeichnisse sollte die Namen in der richtigen Schreibweise auflisten.

Die Glaskugel hat ja mal funktioniert.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Funktion gesucht, die den tatsächlichen Pfadnamen ermittelt

  Alt 31. Aug 2016, 10:09
Warum muss das nicht immer stimmen? Genau das willst du doch oder?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.749 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Funktion gesucht, die den tatsächlichen Pfadnamen ermittelt

  Alt 31. Aug 2016, 10:12
Warum muss das nicht immer stimmen? Genau das willst du doch oder?
Vermutlich will er bei D:\MeinDelphiCode nicht D:\Meindelphicode kriegen.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Funktion gesucht, die den tatsächlichen Pfadnamen ermittelt

  Alt 31. Aug 2016, 10:18
Erst alles klein schreiben (LowerCase) und dann "jeden ersten Buchstaben nach einem Backslash groß".
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.749 Beiträge
 
Delphi 2007 Professional
 
#6

AW: Funktion gesucht, die den tatsächlichen Pfadnamen ermittelt

  Alt 31. Aug 2016, 10:21
Erst alles klein schreiben (LowerCase) und dann "jeden ersten Buchstaben nach einem Backslash groß".
Klappt bei Aviators und meinen Beispielen eben nicht.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Funktion gesucht, die den tatsächlichen Pfadnamen ermittelt

  Alt 31. Aug 2016, 10:26
Warum?
Code:
C:\MeinOrdner\meinDritterOrdner\ -> C:\meinordner\meindritterordner\ -> C:\Meinordner\Meindritterordner\
Oder was hab eich da jetzt übersehen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Funktion gesucht, die den tatsächlichen Pfadnamen ermittelt

  Alt 31. Aug 2016, 10:18
Warum muss das nicht immer stimmen? Genau das willst du doch oder?
Also was der TE will weiß ich nicht. Meine Glaskugel scheint defekt zu sein.

Aber es gibt doch auch Ordnerstrukturen die so aussehen:
  • C:\Windows\System32\
  • C:\MeinOrdner\meinzweiterOrdner\
  • C:\MeinOrdner\meinDritterOrdner\
  • C:\MeinOrdner\Meinvierterordner\
Dann würde es ja auch nicht stimmen, wenn er nach dem Backslash den ersten Buchstaben groß schreiben würde.

Aber das ist ab diesem Zeitpunkt alles nur noch reine Spekulation. Der TE soll sich mal dazu äußern, was er wirklich will. Ich habe die Eingangsfrage nämlich auch nicht wirklich verstanden. Für mich ist da auch nur der Unterschied der Groß-/Kleinschreibung zu erkennen.
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#9

AW: Funktion gesucht, die den tatsächlichen Pfadnamen ermittelt

  Alt 31. Aug 2016, 10:28
Delphi-Quellcode:
function TitleCase2(const sText: String;
         const bLowerCaseFirst: Boolean = True): String;
const
  cDelimiters = [#9, #10, #13, ' ', ',', '.', ':', ';', '"',
                 '\', '/', '(', ')', '[', ']', '{', '}'];
var
  iLoop: Integer;
begin
  Result := sText;
  if (Result <> '') then
  begin
    Result[1] := UpCase(Result[1]);
    for iLoop := 2 to Length(Result) do
      if (Result[iLoop - 1] in cDelimiters) then
        Result[iLoop] := UpCase(Result[iLoop]);
  end;
end;

function GetLongPathName(ShortName:String):String;
var NameS: String;
     Len : integer;
     Buffer: array[0..MAX_PATH] of Char;
     pDummy: PCHAR;
begin
     Len := GetFullPathName(PChar(ShortName), 0, PChar(result), pDummy);
     SetLength(NameS, Len);
     GetFullPathName(PChar(ShortName), Len, PChar(NameS), pDummy);
     result := TitleCase2(NameS);
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
Caption:= GetLongPathName('c:\windows\system32');
end;
Alternative:
Delphi-Quellcode:
function TitleCase3(const sText: String;
         const bLowerCaseFirst: Boolean = True): String;
var
  iLoop: Integer;
begin
  Result := sText;
  if (Result <> '') then
  begin
    Result[1] := UpCase(Result[1]);
    for iLoop := 2 to Length(Result) do
      if (not (Result[iLoop - 1] in ['a'..'z','A'..'Z','0'..'9'])) then
          Result[iLoop] := UpCase(Result[iLoop]);
  end;
end;

function GetLongPathName(ShortName:String):String;
var NameS: String;
     Len : integer;
     Buffer: array[0..MAX_PATH] of Char;
     pDummy: PCHAR;
begin
     Len := GetFullPathName(PChar(ShortName), 0, PChar(result), pDummy);
     SetLength(NameS, Len);
     GetFullPathName(PChar(ShortName), Len, PChar(NameS), pDummy);
     result := TitleCase3(NameS);
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
Caption:= GetLongPathName('C:\Windows\System32\ATEST\123Test');
end;

Geändert von t.roller (31. Aug 2016 um 11:03 Uhr)
  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 14:24 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