Autor Thema: variant als string  (Gelesen 2086 mal)

Offline ell5lle

  • Junior Mitglied
  • **
  • Beiträge: 60
variant als string
« am: 17.05.06 - 15:31:14 »
Hallo!
Folgendes Problem: ich möchte mit Lotus Script aus dem Feld "DeliveredDate" einer mail einen Dateinamen erzeugen! :)
Das Problem: Ich möchte Fragmente aus dem Feld verwenden!
Mit dem Left-Befehl usw. wäre dies auch kein Problem - wenn es sich um einen String handeln würde- es ist aber ein Variant. Mit "Cstr" kann ich den Typ aber leider nicht wie gewünscht verändern!
Infos:
Feld Delivered Date: 14.05.2006 12:00:23
Soll-Ausgabe für den Dateinamen: 14.05.06-12.00.23

Bin ich auf dem falschen Dampfer .. sehe ich etwas nicht .. was ist los? :-:

Wie kann ich dies am Besten bewerkstelligen?

Velen Dank für jede (sachdienliche ;)) Antwort!

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: variant als string
« Antwort #1 am: 17.05.06 - 15:34:25 »
Wie schaut der vorhandene Code aus?
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 ell5lle

  • Junior Mitglied
  • **
  • Beiträge: 60
Re: variant als string
« Antwort #2 am: 17.05.06 - 15:44:41 »
Ein so richtigen Code gibt es noch nicht ... da verschiedenes versucht wurde.
Ähnliches hatte ich bereits für ein Frontend-Agenten erstellt - der läuft auch:

   datum = uidoc.FieldGetText ("DisplayDate")
   
   datum1$ = Left$(datum, 5)
   string1$ = datum1$
   
   string2$ = "."
   subString$ = Mid$(datum, 12, 13)
   Mid$(subString$,3) = string2$
   
   If Not uidoc.EditMode Then
      uidoc.EditMode = True
   End If
   
   Open "c:\" + datum1$ + "_" + substring$ +"h.txt" For Output Access Write As #5
   Print #5, inhalt & Chr$ (10)

Ich weiss, dass dieses nicht im backend funktioniert aus dem Grund wollte ich dies gerne abwandeln:

dat1 = doc.DeliveredDate
und dann dieses dat1 verhackstücken ... ähnlich wie oben

Offline Wilhelm

  • Aktives Mitglied
  • ***
  • Beiträge: 214
  • Geschlecht: Männlich
Re: variant als string
« Antwort #3 am: 17.05.06 - 16:11:57 »
Hallo,

in der Klasse NotesDateTime hast Du die Möglichkeit, den Feldinhalt als Datum zu benutzen und mit den Funktionen Hour(), Minute() und Second() kommst Du dann bequem an die restlichen Infos. Nur noch verketten und fertig ist Dein Dateiname!

Gruß

Willi

P.S.: doc.DeliveredDate funktioniert nur als Instanz eines Arrays: doc.DeliveredDate(0)
Ich will endlich die F9-Taste in diesem Forum haben!!!

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re: variant als string
« Antwort #4 am: 17.05.06 - 16:15:37 »
Was interessanterweise immer geht (hatte das Problem des nichtfunktionierendne CStr/Str auch schon) ist
                                         ""&varvariable

Elegant ist was anderes - aber wenn mich das interessierte würde ich wohl kein Notes entwickeln...;)
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Offline ell5lle

  • Junior Mitglied
  • **
  • Beiträge: 60
Re: variant als string
« Antwort #5 am: 18.05.06 - 08:58:35 »
Kann mir bitte jemand ""&varvariable näher erklären? ???
Finde dazu nichts weiteres!
« Letzte Änderung: 18.05.06 - 09:47:01 von ell5lle »

Offline Untitled

  • Senior Mitglied
  • ****
  • Beiträge: 364
    • Musiker24.ch - Musiker und Bands finden
Re: variant als string
« Antwort #6 am: 18.05.06 - 10:10:41 »
Die Anweisung "xx" ist immer ein String und das ist Notes auch klar  ;D

Bei einer Variable, die als String deklariert wurde, sieht die Sache anscheinend anders aus (ist unlogisch, ok...).

Für Notes ist anscheinend also
Code
Dim s as String
s = "xx"

s != "xx"
(natürlich nicht direkt in einer If-Abfrage, sondern Tief-Code-Intern irgendwo...)

Mit ["xx" & variable] wird sogar Notes klar, das es sich beim Ganzen um einen String handeln muss.

Also falls Cstr(var) nicht funktioniert, einfach "" & var schreiben und einen Kommentar dazu nicht vergessen, damit dich der nächste Programmierer nicht verdammt und die Zeile wieder ändert  ;)

Klar?

Moritz

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re: variant als string
« Antwort #7 am: 18.05.06 - 10:33:15 »
Mit dem Left-Befehl usw. wäre dies auch kein Problem - wenn es sich um einen String handeln würde- es ist aber ein Variant.
Wie liest du denn das Feld aus? Etwa so?

Zitat
zd = doc.FeldName

oder

zd = doc.GetItemValue("FeldName")

Dann versuche es mal so:

Zitat
zd = Cstr(doc.FeldName(0))

oder

zd = Cstr(doc.GetItemValue("FeldName")(0))

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline smoki

  • Senior Mitglied
  • ****
  • Beiträge: 325
  • Geschlecht: Männlich
    • Smoki's Lotus Notes
Re: variant als string
« Antwort #8 am: 18.05.06 - 23:56:02 »
Vielleicht solltest du den Format-Befehl verwenden?!

Ala:

ret = format(fieldvalue,"dd.mm.yy-hh.mm.ss")

Müsste gehen, hab ich aber nicht getestet :)

Gruss
Chris

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz