Hot News:

Unser Angebot:

  Foren auf CAD.de
  VBasic / vb.net / vbs / wsh
  Zeichenumwandlung

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:  Zeichenumwandlung (532 mal gelesen)

Ex-Mitglied



erstellt am: 05. Feb. 2005 16:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo zusanmmen,

im Rahmen eines Makros zur Umwandlung von Zeichen bin ich auf eines gestossen, das sich so anscheinend nicht umwandeln läßt. Dabei scheint es sich um ein Unicode-Zeichen zu handeln.

Mein Code:

Code:

    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = ChrW(8804)
        .Replacement.Text = "max."
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With

Irgendwo ist noch ein Fehler hier drin. Kann mir jemand einen tipp geben, wo er liegt?

Viele Grüße,

CEROG

------------------
Inoffizielle Linux-Hilfeseite http://linux.cad.de

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: 05. Feb. 2005 22:19    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 Roland,

ich geh' mal einfach davon aus, du spricht von einem word-makro ;-)

Hab' das mal so nachgebastelt, funktioniert eigentlich,
Einstellungen waren dieselben, bei meiner Makroaufzeichnung stand zwar das Execute am Ende,
nicht am Anfang - wie bei Dir - ging aber trotzdem.
Sowohl innerhalb ganzer Wörter als auch als solitärzeichen.

Ich weiss, is keine große Hilfe, aber wenns nich beim ersten mal klappt,
versuchs nochmal mit dem Cursor an andrer Stelle oder so ...

... ansonsten wüsst ich nicht wo der Hase hier im Pfeffer liegen könnte;-)

lg Nancy

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


Ex-Mitglied



erstellt am: 06. Feb. 2005 10:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo Nancy,

es geht tatsächlich um ein Word-Makro, wie du richtig erkannt hast.

Nachdem ich die Zeile

Code:
Selection.Find.Execute Replace:=wdReplaceAll
unter meinen Block schreibe, funktioniert es einwandfrei.
Ich hab  hier eine längere Liste mit Ersetzungen, die ich abarbeiten muß. Die Zeile, die in meinem ersten Posting über meinem with-Block steht, gehört zu der Umwandlung vorher.   

Ich muß mal sehen, wie ich den ganzen Kram vereinfache.

Danke für deine Hilfe.

Viele Grüße und viel Spaß beim Karneval, Fasching, Fasnet, Fasent oder wie es bei euch heißt,

CEROG

PS: Kannst du nicht für VB-Legastheniker wie mich eine "Inoffizielle VB-Hilfeseite" erstellen?

PS2: Langsam schulde ich dir was...

------------------
  Inoffizielle Linux-Hilfeseite

[Diese Nachricht wurde von CEROG am 06. Feb. 2005 editiert.]

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: 06. Feb. 2005 19: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 Roland,

hmm, ehrlichgesagt kannste mich mit Word jagen ...,
aber okay, vereinfachen könnte man das vielleicht so in der Art:

Code:

Sub aaa()
   With Selection.Find
      'eins
      .Text = ChrW(8804)
      .Replacement.Text = "max."
      .Execute Replace:=wdReplaceAll
     
      'zwei
      .Text = "Ø"
      .Replacement.Text = "Durchmesser"
      .Execute Replace:=wdReplaceAll
     
      'drei
      .Text = "Microsoft"
      .Replacement.Text = "M$"
      .Execute Replace:=wdReplaceAll
     
      'usw usf ...
   End With
End Sub

Inwiefern man jedesmal den ganzen andren 'Rattenschwanz' braucht, weiss ich nicht, keine Ahnung.
Wichtig ist aber jedesmal die zeile:  .Execute Replace:=wdReplaceAll,
sonst führt er nur die letzte Replace-Anweisung innerhalb des 'With' aus.

Alternativ vielleicht noch mit Regex, kommt aber drauf an - nur wenn Du nach bestimmten Mustern suchst -
wenn Du aber jeweils immer nur ein Sonderzeichen durch ein Wort ersetzen willst, lohnt es sich sicherlich nicht.
Willste aber zB mehrere Sonderzeichen auf einmal durch "irgendwas" ersetzen, könntes intressant sein.
Allerdings musste Dir dazu dann nen Verweis auf die M$ VBScript Regular Expressions 5.5 Bibliothek setzen.

'Inoffizielle VB-Hilfeseite' - ... ich ... erstellen?!?       
Neenee, Spass beiseite, weiss ja nichmal wie man ordentlich mit API's umgeht
ausserdem gibts da IMHOIn my humble oppinion (Meiner Meinung nach) derer schon soviel wie Sand am Meer von Foren ganz zu schweigen ;-)))

lg Nancy
--

Code:

Sub justForFun()
   Dim re As New regexp
   re.IgnoreCase = False
   re.Global = True
   With Selection
      'eins, normalerweise müsste auch ein \u8804 gehen, geht aber nich, i don't know ...
      re.Pattern = ChrW(8804)
      .Text = re.Replace(.Text, "max.")
      'zwei
      re.Pattern = "Ø"
      .Text = re.Replace(.Text, "Durchmesser")
      'drei, ersetzt zb alle '+' '&' durch 'und'
      re.Pattern = "[+&]"
      .Text = re.Replace(.Text, "und")
   End With
End Sub
 

[Diese Nachricht wurde von startrek am 06. Feb. 2005 editiert.]

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


Ex-Mitglied



erstellt am: 06. Feb. 2005 19:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo Nancy,

den ganzen Sermon habe ich durch das Mitschreiben eines Austauschs erhalten. Jetzt schreibe ich ihn immer mit, aus Angst es könnte Probleme geben.

Ich überlege, daß ganze mit einer Art Schleife zu machen oder einer case-Anweisung, falls es sowas bei Word-VBA gibt.

Mein zweites Problem dabei ist, daß es eigentlich nicht mein Job ist, den ich dabei mache. Aber sonst ist ja niemand da...

Viele Grüße,

CEROG

------------------
Inoffizielle Linux-Hilfeseite

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: 06. Feb. 2005 19:53    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

Hmm, ich kenn' ja deine Texte/ersetzungen nicht,
aber über 'ne Schleife?
Geht sicher, aber irgendwoher muss er ja eine Art Suchen/Ersetzen Info bekommen.
Theoretisch das ganze Palaver in nem Array oder nem externen File speichern,
so als eine Art 'Übersetzungstabelle'.
Sinngemäss:
Code:

dim arr(1 to 10, 1 to 2)
arr(1,1)="1" : arr(1,2)="eins"
arr(2,1)="2" : arr(2,2)="zwei"
arr(3,1)="3" : arr(3,2)="drei"
arr(4,1)="4" : arr(4,2)="vier"

Dann kannste den ganzen Kram mit for lbound(arr) to ubound(arr) - next drüberbügeln.
Jedenfalls, so in etwa könnte ichs mir zumindest vorstellen ...
dazu brauchts aber irgendwo/irgendwie erstmal ne hinterlegte Definition:
was ist 'Suchen_nach' : was ist 'Ersetze_durch'
(könnte IMHOIn my humble oppinion (Meiner Meinung nach) auch ein Textfile sein, mit Delimiter zb ':', m.e. dann irgendsowas

1:eins
2:zwei
3:drei

dann gehts sicher auch mit Schleife;-)

lg Nancy   

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


Ex-Mitglied



erstellt am: 06. Feb. 2005 20:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo nancy,

das mit einem Array könnte gehen. das ist dann bei einer Erweiterung wahrscheinlich weniger fehlerträchtig als im Augenblick...

Muß mich mir mal genauer anschauen.

Viele Grüße,

CEROG

------------------
Inoffizielle Linux-Hilfeseite

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