Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  OT: gültige Pfade mit RE's

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  OT: gültige Pfade mit RE's (499 mal gelesen)
startrek
Moderator
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: 16. Sep. 2005 21:37    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,

ziemlich daneben in dem Forum, aber wusste nicht wohin damit.
Folgende OT-Frage mal:
Wie kann ich mit VBA/Regexp's gültige Pfadeingaben kontrollieren/korrigieren.
Oder anders, unabhängig von Pfaden, alle 'ä' 'ö' 'ü' durch 'ae' 'ue' 'ue' 'Ae' 'Ue' 'Oe'
ersetzen? Okay, man kann die Strings in VB mit Array's abklopfen/vergleichen/ersetzen, no Prob, zumindest das kleingeschriebene 'ä' nicht;-)
Beim grossen 'Ä' wirds da aber auch komplizierter;-)

Dachte das muss sich doch mit Regular Expressions lösen lassen, allerdings schaffe ich das nur bedingt,
folgender Ansatz liefert mir immer nur das gewünschte Ergebnis, wenn öüä
a) in der Reihenfolge auftreten
b) keinesfalls doppelt
c) Sachen wie Ae Oe Ue sind auch nicht drin

Hat wer hier dazu eine Lösung/Ansatz mit Regexp?
Nochwas, wo hättet ihr das gepostet?;-)

Gruss Nancy

Code:

Sub regex_a_path()
   Dim re As Object, M As Object, i%, sOri$, sNew$
   Set re = CreateObject("vbscript.regexp")
   re.Global = True
   re.ignorecase = True
   re.Pattern = "(.*?)ö(.*)ü(.*)ä(.*) (.*)"
   sOri = "D:\dös\üst\täst 01"
   sNew = re.Replace(sOri, "$1oe$2ue$3ae$4_$5")
   Debug.Print sNew
   'für Pfadangaben, werden nur die Zeichen a-z0-9\: zugelassen,
   'alles andre bleibt im Sieb hängen
   re.Pattern = "[^a-z0-9\\:_]"
   Set M = re.Execute(sOri)
   For i = 0 To M.Count - 1
      Debug.Print "M" & i, M(i)
   Next
End Sub
    

[Diese Nachricht wurde von startrek am 16. Sep. 2005 editiert.]

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Die Phönizier haben das Geld erfunden - aber warum so wenig?
(Johann Nepomuk Nestroy)

erstellt am: 17. Sep. 2005 01:43    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 startrek 10 Unities + Antwort hilfreich

Das ist so nicht der typische Anwendungsfall für ein single pass S&R (also nur 1 Durchgang) - das ist eher das, was man eine Transliteration nennt (z.B. Umcodierung von einem Zeichensatz in einen anderen).

Mit RE würde ich das ganz schlicht in einer Schleife abarbeiten, also eine Collection (key = ä, value = ae, key = Ä, value = Ae usw.) und dann durch die Collection iterieren.

Der zweite Teil ist mir unklar: Du suchst nach den Zeichen, die nicht in dein Schema passen, aber was machst du dann damit? Nur Ausdrucken reicht ja nicht, oder?

Und die letzte Frage: Am besten wärs wahrscheinlich im allgemeinen VB-Forum aufgehoben, denn a) hat es keinen Bezug zu AutoCAD und b) spielt die Frage, ob es um VBA oder VB geht, auch keine Rolle. Dann hättest du aber auf diese Antwort verzichten müssen, da ich dort nur ab und zu mal reinschaue;-)

Gruß, Axel

------------------
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

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

startrek
Moderator
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: 17. Sep. 2005 21:02    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

Abend Axel,

sorry für spätes Reply, bin heute im tiefsten Spessart rumgegurkt ;-)
Ja, hab' das jetzt mal mit nem Dictionary/collection incl. 'Keys' versucht,
aber um die Schleife komm' ich damit nicht rum.

Also wenn mans mal genau nimmt, sehe ich das so, das da RE eher ungeeignet sind,
weil das bekommt man auch mit einem 'normalen' Replace in den Griff.
Was heisst ungeeignet, es geht natürlich auch, aber der Schwerpunkt des Werkzeugs liegt eigentlich woanders.

Dachte ja, das liesse sich mit RE mit nem One-Liner lösen, aber okay geht wohl nicht.

Vergiss Part II, der war nur zur Kontrolle und tut nix zur Sache.

Und zum letzten:
Ja, das hatte ich eingangs auch vor, hab mich aber dann anders entschieden;;-))

Danke für deine Hilfe,
hast mir ein Stück 'Verunsicherung' genommen

lg Nancy
               

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)2023 CAD.de | Impressum | Datenschutz