Autor Thema: UpperCase o.ä. in Script  (Gelesen 2299 mal)

bificypdog

  • Gast
UpperCase o.ä. in Script
« am: 26.04.05 - 16:42:32 »
Moin moin

kurz vorweg: Ich nutze ein Script, dass ich hin und wieder den Kollegen per Mail (Button) zuschicke, mit dem die Kacheln abhängig von der Geschäftsstelle installiert werden.
Alle Geschäftsstellen habe einen Server und dort liegt normalerweise auch der "MailServer". Das heisst: Ich hole mir aus die Umgebungsvariabel "MailServer" und füge per "Call UiWs.addDatabase...." die Kachel hinzu.

Das ist normalerweise kein Problem, hätten wir nicht in der Hauptstelle zwei Notes-Server.
Auf SERVERA laufen alle Anwendungen und SERVERB stellt nur die Postkörbe zur Verfügung.

So dachte ich mir (auch wenn es nicht elegant ist), frage ich einfach den ermittelten "MailServer" im Script fest ab und prüfe, ob nicht jemand versehentlich den "SERVERB" angegeben hat. Wenn ja, dann wird der Wert (unschön) im Script mit "SERVERA" ersetzt.

Code
	sMailServer = oSession.GetEnvironmentString("MailServer",True)
	If cMailServer.common = "SERVERB" Then
		cMailServerNew = "SERVERA"
	Else
		cMailServerNew = cMailServer.common 
	End If

Der Eintrag "MailServer" in der names.nsf ist hin und wieder klein oder GROSS geschrieben. Das ist mein Problem. Die simple If-Abfrage prüft nur, ob der Wert (im obigen Beispiel) GROSS geschrieben wurde. Ich finde es dabei ziemlich unelegant, wenn ich jetzt alle möglichen Schreibweisen überprüfen muss.

In der Formelsprache würde ich einfach mit einem Uppercase den String vergleichen.

Ich konstruiere mal ;-)

If @UPPERCASE(cMailServer.common) = "SERVERB" Then

Schicke, gelle? ;-)

Wie geht das aber wirklich in Lotus Script?


Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: UpperCase o.ä. in Script
« Antwort #1 am: 26.04.05 - 16:45:51 »
Also in Notes 6 gibts StrConv ( expr , 1 ) für sowas.

HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: UpperCase o.ä. in Script
« Antwort #2 am: 26.04.05 - 16:48:12 »
UCase heisst das in LS, das Gegenteil ist Lcase.

Bernhard

bificypdog

  • Gast
Re: UpperCase o.ä. in Script
« Antwort #3 am: 26.04.05 - 16:52:03 »
*andenkopfpack*

Grr.
Habe den Text gerade zu Ende geschrieben und kurz danach mal folgendes ausprobiert.

If Ucase$(cMailServer.common) = "SERVERB" Then

Und es klappt. Die Schreibarbeit hätte ich mir sparen können.

Dennoch vielen Dank für eure Hilfe.

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: UpperCase o.ä. in Script
« Antwort #4 am: 26.04.05 - 17:02:42 »
Hm .... interessant, dass niemand strCompare erwähnt, welches doch fürs Vergleichen von Strings vorgesehen ist ....
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: UpperCase o.ä. in Script
« Antwort #5 am: 26.04.05 - 17:08:56 »
Vielleicht, weil es sich einfach nicht so intuitiv lesen / schreiben lässt - und machen tut es auch nix anderes ...

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: UpperCase o.ä. in Script
« Antwort #6 am: 26.04.05 - 17:22:15 »
Dürfte deutlich performanter sein als die anderen Varianten .... klar, im gegebenen Fall spielt das keine Rolle.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: UpperCase o.ä. in Script
« Antwort #7 am: 26.04.05 - 18:39:03 »
Performanter habe ich auch erwartet, aber ... Zunächst musste ich den Schleifenendwert auf 500.000 setzen, um überhaupt vernünftig messen zu können. Damit nicht immer die gleichen Werte vorgesetzt werden (der Compiler ist ja auch nicht doof  ;D), vergleiche ich NotesSession.Username mit einer Konstanten.
Ergebnis für beide Verfahren: 14 Sekunden.

Hier spielt aber offensichtlich die Abfrage von Username vorrangig zu, denn:
Belege ich eine Variable mit einer Konstanten und vergleiche dann in der Schleife die variable mit einer Konstanten, erhält man einen deutlichen Unterschied:
StrCompare: 9 Sekunden
Ucase: 23 Sekunden
(was zu erwarten war).

Einen praktischen Nutzen hat das aber bestimmt nicht, da die anderen Vorgänge innerhalb einer Schleife deutlich mehr Einfluss auf die Laufzeit haben als dieser Vergleich. Interessant war der Test aber schon  :)

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: UpperCase o.ä. in Script
« Antwort #8 am: 26.04.05 - 19:10:41 »
Danke fürs Testen und die Bestätigung der Vermutungen ....

Für mich interessanter am strCompare ist eigentlich schon die Möglichkeit, die Option Case gleich mitgeben zu können, damit hat man dann wirklich grosse Flexibilität, was das Vergleichen anbelangt.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz