AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi prüfen ob String ein Ordner-Pfad ist
Thema durchsuchen
Ansicht
Themen-Optionen

prüfen ob String ein Ordner-Pfad ist

Ein Thema von Helmi · begonnen am 14. Mai 2006 · letzter Beitrag vom 15. Mai 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#1

prüfen ob String ein Ordner-Pfad ist

  Alt 14. Mai 2006, 20:51
Hallo,

wie kann ich prüfen ob der Inhalt eines Strings ein Ordner ist?

Ich hab mir das so in etwa gedacht:

Delphi-Quellcode:
var
  S: String;
  b_Ist_Ordner, b_Ordner_vorhanden: Boolean;

begin

  S := 'C:\Temp;

//Hier bräucht ich eine Funktion:
b_Ist_Ordner := STRING_IST_ORDNER(S);

If b_Ist_Ordner then
b_Ordner_vorhanden := DirectoryExists(S);
Also ich möchte nicht prüfen ob der Ordner vorhanden ist, sondern nur ob der String ein Ordner ist oder eine Datei (also eigentlich nur ob er ein Ordner ist).

Gibts für so was eine fertige Function von Delphi oder muss man sich so was selber zusammenbauen?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#2

Re: prüfen ob String ein Ordner-Pfad ist

  Alt 14. Mai 2006, 21:09
Bastel dir einfach selber was:


Delphi-Quellcode:
function isdirname(s:string):boolean;
var
  i:integer;
begin
  result:=false;
  if length(s)<2 then exit;
  if not ((pos(s[1],'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')>0) and (s[2]=':')) then exit;
  result:=true;
  if length(s)=2 then exit;
  result:=result and (s[3]='\');
  for i:=4 to length(s) do
    result:=result and (pos(s[i],'alle gültigen Zeichen eben'+'\')>0);
end;
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#3

Re: prüfen ob String ein Ordner-Pfad ist

  Alt 14. Mai 2006, 21:20
Zitat von ichbins:
  if not ((pos(s[1],'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')>0) and (s[2]=':')) then exit;
Das geht auch einfacher und schneller mit:

  if (not (s[1] in ['a'..'z','A'..'Z'])) and (s[2]=':')) then exit;
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: prüfen ob String ein Ordner-Pfad ist

  Alt 14. Mai 2006, 21:27
ein ordner muss nicht unbedingt einen ":" im Namen haben. Er kann auch in einem Netzwerkpfad vorhanden sein. Zusätzlich müsste noch geprüft werden das keine weiteren Sonderzeichen im Pfad sind.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
nat

Registriert seit: 10. Nov 2005
216 Beiträge
 
RAD-Studio 2009 Pro
 
#5

Re: prüfen ob String ein Ordner-Pfad ist

  Alt 14. Mai 2006, 22:06
also es kommt natürlich auf deinen fall an, aber wenn die eingaben (der string)
nur dateien oder ordner bezeichnen können (keinen willkürlichen text in dem evtl ein \ vorkommt)
dann kannst du das eigentlich so unterschieden.

Delphi-Quellcode:
if ExtractFilePath(myString) = 'then
  //ist ein Ordner
else
  //ist eine Datei
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#6

Re: prüfen ob String ein Ordner-Pfad ist

  Alt 14. Mai 2006, 22:16
Zitat von Helmi:
Also ich möchte nicht prüfen ob der Ordner vorhanden ist, sondern nur ob der String ein Ordner ist oder eine Datei (also eigentlich nur ob er ein Ordner ist).
Ohne eine "echte" Prüfung dürfte das wohl unmöglich sein.

Code:
C:\Daten\WasBinIch
Wie willst du feststellen, ob es eine Datei oder ein Ordner ist, ohne im Dateisystem nachzusehen? Dateinamen müssen keine Extension enthalten, Ordner dürfen eine enthalten. Also gibt es in unserem Beispiel zwei Möglichkeiten:

1.) es ist die Datei "WasBinIch" im Ordner "C:\Daten"
2.) es ist der Ordner "C:\Daten\WasBinIch"

Gruß Hawkeye
  Mit Zitat antworten Zitat
Ben

Registriert seit: 16. Apr 2003
Ort: Neumünster
73 Beiträge
 
Delphi 5 Standard
 
#7

Re: prüfen ob String ein Ordner-Pfad ist

  Alt 14. Mai 2006, 22:29
Hallo,

wie wäre es mit
Delphi-Quellcode:
if DirectoryExists(S)
  // S ist ein Verzeichnis

else if FileExists(S)
  // S ist eine Datei

else
  // S ist irgendwas anderes
?

Mit freundlichen Grüßen,
Ben
Ben Hübner
Ben-Huebner.de
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: prüfen ob String ein Ordner-Pfad ist

  Alt 14. Mai 2006, 22:31
nach seinem ausgangspost will er ja erst auf existieren des Ordners prüfen wenn er weiß das es ein Ordner sein könnte/ist
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
lizardking

Registriert seit: 2. Sep 2005
76 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: prüfen ob String ein Ordner-Pfad ist

  Alt 14. Mai 2006, 22:35
Zitat von Ben:
Hallo,

wie wäre es mit
Delphi-Quellcode:
if DirectoryExists(S)
  // S ist ein Verzeichnis

else if FileExists(S)
  // S ist eine Datei

else
  // S ist irgendwas anderes
?

Mit freundlichen Grüßen,
Ben
Er moechte auch herausfinden, ob es sich um ein Verzeichnis oder eine Datei ist, wenn diese(s) nicht existiert. Der Ansatz mit ExtractFilePath und ExtractFileName ist denke ich schon der richtige.

ABER: Dabei sollte beachtet werden, dass man per Definition nicht eindeutig sagen kann, ob in einem String ein Verzeichnis oder eine Datei angegeben ist.

'C:\WINDOWS\HelloWorld'

Das koennte z.B. eine Datei oder ein Verzeichnis sein.

Gruesse,

Lizzy
  Mit Zitat antworten Zitat
nat

Registriert seit: 10. Nov 2005
216 Beiträge
 
RAD-Studio 2009 Pro
 
#10

Re: prüfen ob String ein Ordner-Pfad ist

  Alt 14. Mai 2006, 22:40
dann definiert man halt für sein eigenes programm, dass dateien ohne ext.
als ordner angesehen werden. es kommt halt immer auf den kontext an.
wie willst du es anders machen ohne ins dateisys zu schaun.
besser als mit ExtractFilePath / ExtractFilename gehts nich (meiner meinung nach).
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:05 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