Hot News:

Unser Angebot:

  Foren auf CAD.de
  VBasic / vb.net / vbs / wsh
  Datei finden

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  Datei finden (5334 mal gelesen)
Heiko76
Mitglied
Applikationsingenieur


Sehen Sie sich das Profil von Heiko76 an!   Senden Sie eine Private Message an Heiko76  Schreiben Sie einen Gästebucheintrag für Heiko76

Beiträge: 589
Registriert: 21.03.2002

erstellt am: 15. Mrz. 2006 10:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,

ich komme nicht weiter. Ich habe eine Verzeichnisstruktur:

Hauptverzeichniss AAA
Darunter sind die Verzeichnisse 111 und 222
Unter dem Verzeichniss 222 gibt es die Verzeichnuse A1 A2 und A3

Irgendwo in den Verzeichnissen A1 A2 oder A3 gibt es eine Datei die Heißt A12345xx.dwg wobei xx kann sein xx oder eine Zahl zwischen 00 und 99. Wie finde ich jetzt diese Datei? Die Verzeichnisse sind bekannt, nur der Dateiname ist nicht ganz bekannt (wegen diesem xx, das ist der Änderungsindex der Zeichnung).

------------------

cu
Heiko

Schau mal rein www.mertens-bb.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Mitglied
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 15. Mrz. 2006 14:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Heiko76 10 Unities + Antwort hilfreich

Hallo Heiko,

so?

Code:
Sub y()
    Dim s$
    s = Dir("d:\*.dwg")
    While s <> ""
        If IsNumeric(Right(Split(s, ".")(0), 2)) Or _
        Right(Split(s, ".")(0), 2) = "xx" Then Debug.Print s
        s = Dir
    Wend
End Sub

Gruss Nancy

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

clausb
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von clausb an!   Senden Sie eine Private Message an clausb  Schreiben Sie einen Gästebucheintrag für clausb

Beiträge: 2914
Registriert: 20.12.2000

erstellt am: 25. Mrz. 2006 12:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Heiko76 10 Unities + Antwort hilfreich

In VBscript kann man den Dateinamenvergleich beispielsweise auch so loesen:

Code:

set folder=CreateObject("Scripting.FileSystemObject").GetFolder("c:\temp")

Set regex=new RegExp
regex.Pattern = "^[A-Za-z][0-9]{5}[0-9x][0-9x]\.dwg$"

for each file in folder.Files
  if regex.Test(file.Name) Then
    WScript.Echo("Passende Datei gefunden: " & file.Path)
  End if
next


Wenn ich Dich richtig verstanden habe, beginnt der Dateiname mit einem Buchstaben, danach folgen fuenf Ziffern, danach noch einmal zwei Stellen, die entweder eine Ziffer oder 'x' sind. Diese Annahme ist in 'regex.Pattern' festgehalten.

Mit regulaeren Ausdruecken wie oben tut man sich etwas leichter, wenn sich die Dateinamenskonventionen mal aendern - dazu passt man nur das Suchmuster an und muss nicht ueber die richtige Kombination von Left/Right/Mid/Trim/wasauchimmer nachdenken.

Der folgende Code erledigt auch noch gleich die rekursive Dateinamensuche mit:

Code:

startFolder="c:\temp"

set folder=CreateObject("Scripting.FileSystemObject").GetFolder(startFolder)

Sub recursiveSearch(dir, regex)
  for each file in dir.files
    if regex.Test(file.Name) Then
      WScript.Echo("Passende Datei gefunden: " & file.Path)
    End if
  next

  for each folder in dir.SubFolders
    recursiveSearch folder, regex
  next
End Sub

Set regex=new RegExp
regex.Pattern = "^[A-Za-z][0-9]{5}[0-9x][0-9x]\.dwg$"
recursiveSearch folder, regex


Claus


------------------
OneSpace Designer Modeling FAQ: http://www.clausbrod.de/Osdm/

[Diese Nachricht wurde von clausb am 25. Mrz. 2006 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Mitglied
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 25. Mrz. 2006 13:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Heiko76 10 Unities + Antwort hilfreich

Hi Klaus,

> regex.Pattern = "^[A-Za-z][0-9]{5}[0-9x][0-9x]$"

matched das in VBScript??? Bei mir geht nur sowas:

Code:

regex.Pattern = "^[A-Za-z][0-9]{5}(?:\d\d|xx)\.dwg$"
'oder
regex.Pattern = "\w\d{5}(?:\d\d|xx)\.dwg"


Gruss Nancy
--
ps: zB bei:
A1234501.dwg 'Y
A12345xx.dwg 'Y
A1234599.dwg 'Y
A12345zz.dwg 'N

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

clausb
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von clausb an!   Senden Sie eine Private Message an clausb  Schreiben Sie einen Gästebucheintrag für clausb

Beiträge: 2914
Registriert: 20.12.2000

erstellt am: 25. Mrz. 2006 14:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Heiko76 10 Unities + Antwort hilfreich

Nancy,

ich hatte in der ersten Version meines Postings die Dateinamensendung .dwg im Suchmuster vergessen (dann aber ganz schnell korrigiert, aber offenbar warst Du schneller  ). Ansonsten funktioniert bei mir das Suchmuster ganz prima so.

Deine Idee mit den Abkuerzungen fuer die Zeichenklassen ist sehr gut, allerdings bedeutet \w etwas anderes als [A-Za-z]. Zumindest bei mir passt \w auch auf Ziffern, und das waere in unserem Beispiel ja falsch.

Aber dank Deiner Anregung komme ich nun also zu der folgenden verbesserten Version des Suchmusters:

Code:

regex.Pattern = "^[A-Za-z]\d{5}[0-9x]{2}\.dwg$"

Claus

------------------
OneSpace Designer Modeling FAQ: http://www.clausbrod.de/Osdm/

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Mitglied
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 25. Mrz. 2006 14:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Heiko76 10 Unities + Antwort hilfreich

Jo Claus,

du hast recht, \w kann auch eine Ziffer sein, auweia das hab ich voll versemmelt;-)
Also auch Dir Danke für den Hinweis, aber wo wir grade beim perfektionieren sind,
noch was:

Code:

regex.Pattern = "^[A-Za-z]\d{5}[0-9x]{2}\.dwg$"
=> matched auch auf: A12345x0.dwg

'deswegen Kombination aus deinem und meinem
regex.Pattern = "[A-Za-z]\d{5}(?:\d\d|xx)\.dwg"



ich hoffe das müsste nun einigermaßen sicher sein.
Achja was gibt es schöneres als so ne kleine RegExp-Übung an so nem verregneten Samstag ... 

lg Nancy

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

clausb
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von clausb an!   Senden Sie eine Private Message an clausb  Schreiben Sie einen Gästebucheintrag für clausb

Beiträge: 2914
Registriert: 20.12.2000

erstellt am: 25. Mrz. 2006 17:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Heiko76 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von startrek:
Code:

regex.Pattern = "[A-Za-z]\d{5}(?:\d\d|xx)\.dwg"

Stimmt - ich hatte die Aufgabenstellung nicht richtig gelesen. Deine Version ist ganz klar die bessere.

  Claus


------------------
OneSpace Designer Modeling FAQ: http://www.clausbrod.de/Osdm/

[Diese Nachricht wurde von clausb am 25. Mrz. 2006 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz