AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Eine Pfadangabe "säubern"?

Ein Thema von Glados · begonnen am 11. Sep 2017 · letzter Beitrag vom 14. Sep 2017
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#11

AW: Eine Pfadangabe "säubern"?

  Alt 12. Sep 2017, 00:02
Zitat:
Ich habe den Eindruck daß du ein etwas rustikales Vorgehen bevorzugst.
Wie genau meinst du das?
Nun z.B. ist c:\Daten. durchaus eine zulässige Angabe. Da einfach den Punkt zu löschen ist eher ein rustikales Vorgehen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.174 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Eine Pfadangabe "säubern"?

  Alt 12. Sep 2017, 07:08
Ein richtiger Pfad ist noch lange nicht gültig.

Gut wäre es, wenn die Pfade beim Eingeben validiert werden.

Sie nachträglich zu bereinigen ist problematisch, weil du da raten musst, was gemeint sein könnte. Ein ":" im Pfad ist sicher falsch, aber ev. war ja das "L" darüber gemeint - ein Entfernen des ":" macht den Code also sicher nicht gültig - obwohl syntaktisch richtig.
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#13

AW: Eine Pfadangabe "säubern"?

  Alt 12. Sep 2017, 07:53
Das ist gut zu wissen. Ich sollte dem Windows-Explorer weniger Beachtung schenken.

Dann kann das hier ja schon einmal raus
Delphi-Quellcode:
while Pos('\ ', aPath) > 0 do
 aPath := StringReplace(aPath, '\ ', '\', [rfReplaceAll]);
Auch geändert habe ich das hier
Delphi-Quellcode:
 // bIsNetworkPath := Copy(aPath, 1, 2) = '\\';
 bIsNetworkPath := IsUNCPathEx(aPath);
Delphi-Quellcode:
// (teils aus der DP-Suche)

function IsUNCPathEx(aPath: string): Boolean;
begin
 // true: aPath = \\server\path, \\?\server\path or \\?\UNC\server\path
 Result := GetUNCPrefix(aPath) <> '';
end;

function GetUNCPrefix(aPath: string): string;
begin
 Result := '';

 case GetExtendedPrefix(aPath) of
  pptExtended:
   Result := '\\?\';
  pptExtendedUNC:
   Result := '\\?\UNC\'
 else
  if Copy(aPath, 1, 2) = '\\then
   Result := '\\';
 end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#14

AW: Eine Pfadangabe "säubern"?

  Alt 12. Sep 2017, 08:04
Ich hätte da noch was:
Code:
\\.\%tmp%\123.zip
(ist ein gültiges und vorhandenes Verzeichnis)
oder
Code:
\\.\D:\
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (12. Sep 2017 um 08:06 Uhr)
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#15

AW: Eine Pfadangabe "säubern"?

  Alt 12. Sep 2017, 08:07
Kommt man damit ins Temp-Verzeichnis? Nehme ich mal stark an
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#16

AW: Eine Pfadangabe "säubern"?

  Alt 12. Sep 2017, 08:15
Kommt man damit ins Temp-Verzeichnis? Nehme ich mal stark an
Kommt darauf an was auf dem entsprechenden Rechner definiert wurde, aber in den meisten Fällen ja.
übrigens
Code:
"c:/Daten/Temperaturen"
funktioniert auch!

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
noisy_master

Registriert seit: 17. Jun 2009
Ort: Wolfenbüttel/Baddeckenstedt
255 Beiträge
 
Delphi XE5 Professional
 
#17

AW: Eine Pfadangabe "säubern"?

  Alt 12. Sep 2017, 08:16
Das
while Pos(....) kannst du weglassen, weil du ja schon ein rfReplaceAll drin hast....
Dirk
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.174 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Eine Pfadangabe "säubern"?

  Alt 12. Sep 2017, 08:20
https://msdn.microsoft.com/en-us/lib...).aspx#maxpath
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: Eine Pfadangabe "säubern"?

  Alt 12. Sep 2017, 08:27
Das while Pos(....) kannst du weglassen, weil du ja schon ein rfReplaceAll drin hast....
Nope, da liegst Du falsch.

Teste mal folgenden Code:
Delphi-Quellcode:
procedure TestWhile;
var
  SomeText: string;
const
  SOURCE = 'ab\\\cd';
begin
  SomeText := SOURCE;
  while Pos('\\', SomeText) > 0 do
    SomeText := StringReplace(SomeText, '\\', '\', [rfReplaceAll]);

  Writeln('WHILE: ', SomeText);

  SomeText := SOURCE;
  SomeText := StringReplace(SomeText, '\\', '\', [rfReplaceAll]);
  Writeln('DIRECT: ', SomeText);
end;
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

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

AW: Eine Pfadangabe "säubern"?

  Alt 12. Sep 2017, 08:33
Schuss ins Blaue: MSDN-Library durchsuchenPathCanonicalize ?
Uli Gerhardt
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 21:55 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