Autor Thema: String zusammensetzen  (Gelesen 5311 mal)

Offline andrew22

  • Aktives Mitglied
  • ***
  • Beiträge: 126
  • Ich liebe dieses Forum!
String zusammensetzen
« am: 17.06.05 - 10:24:23 »
hi ho

Ich möchte gern nen Dateipfad zusammensetzen.

Dim test As String

test = "C:\Temp\t........csv"

da wo die Punkte sind kommt immer etwas anderes

sprich der Dateiname ändert sich nur z.B. die ersten 3 Buchstaben bleiben immer gleich und die Endung

wie mache ich das am besten ?!

thx

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: String zusammensetzen
« Antwort #1 am: 17.06.05 - 10:27:10 »
test = "C:\Temp\T" + Variable + ".csv"
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

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: String zusammensetzen
« Antwort #2 am: 17.06.05 - 10:27:28 »
Aus der Lotus Notes Designer Online-Hilfe:
Zitat
Concatenate two expressions as strings.
Ampersand (&) operator
Syntax
expr1 & expr2
Elements
expr1, expr2
Any String expressions, or any of the following:
Numeric expression: LotusScript converts it to its text representation. In the case of Boolean data types, 0 becomes "False," and any other number becomes "True."
NULL: LotusScript treats it as an zero-length String value when concatenated with the other expression. If both expressions are NULL, the result is NULL.
EMPTY: LotusScript treats it as a zero-length String value.
Return value
The result is a String or a Variant of type String, if either of the operands is a Variant.
Usage
Use the ampersand (&) operator to ensure a concatenation operation. The plus (+) operator also concatenates two character strings, but LotusScript determines whether to interpret the plus as a concatenation operator or an addition operator on the basis of the operands in the expression in which it appears.
Examples
Dim x As Variant
x = 56 & " Baker St."
Print x                         ' Prints "56 Baker St."
anInt% = 123
aString$ = "Hello"
anotherString$ = "world"
varV = NULL
Print aString$ & ", " & anInt% & " " & varV & _
    anotherString$ & "."
' Output: Hello, 123 world.
Plus (+) operator
Syntax
expr1 + expr2
Elements
expr1, expr2
Any String expressions, or any of the following:
Numeric expression: LotusScript converts it to its text representation (if plus is interpreted as concatenation).
NULL: LotusScript treats it as NULL. If either expression is NULL, the result is NULL.
EMPTY: LotusScript treats it as a zero-length String value.
Return value
The result is a String or a Variant of type String, if either of the operands is a Variant.
Usage
Use the ampersand (&) operator to ensure a concatenation operation. The plus (+) operator  concatenates two character strings, but LotusScript determines whether to interpret the plus as a concatenation operator or an addition operator on the basis of the operands in the expression in which it appears.
For example:
Print 100 & "200"
' Output is 100200, because & is always
' a concatenation operator
while
Print 100 + "200"
' Output is 300, because + was interpreted
' as addition operator

Print "100" + "200"
' Output is 100200, because + was interpreted
' as concatenation operator
See Also
Table of string operators
Overview of expressions and operators
String relational(comparison) operators
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 ctillmanns

  • Aktives Mitglied
  • ***
  • Beiträge: 115
Re: String zusammensetzen
« Antwort #3 am: 17.06.05 - 10:29:38 »
Dateiname = "Dateiname"
test = "C:\Temp\"+Dateiname+".csv"
Mist Thomas war wieder mal schneller.
Mit dem Hilfeauszug ist die Verwirrung jetzt dafür komplett.

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: String zusammensetzen
« Antwort #4 am: 17.06.05 - 10:31:21 »
Wenn Du sie nicht überzeugen kannst, verwirre sie. :D
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 andrew22

  • Aktives Mitglied
  • ***
  • Beiträge: 126
  • Ich liebe dieses Forum!
Re: String zusammensetzen
« Antwort #5 am: 17.06.05 - 10:38:10 »
vielen Dank für eure Postings ;)

ich hatte vergessen noch zu schreiben das der Zwischentext sozusagen nicht bekannt ist

sprich im script sollte es so stehen "tes+beliebig Zeichen etc.+.csv"

also im Prinzip wie "*.csv" nur das eben schon vom dateinamen die ersten 3 buchstaben vorhanden sind .

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: String zusammensetzen
« Antwort #6 am: 17.06.05 - 10:41:22 »
Du suchst also die sogenannte Kristallkugel-Funktion, oder wie?

Oder meinst Du etwa die sogenannten "Globs" wie etwa
test = "C:\Temp\t*.csv"
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 ctillmanns

  • Aktives Mitglied
  • ***
  • Beiträge: 115
Re: String zusammensetzen
« Antwort #7 am: 17.06.05 - 10:44:19 »
Oder soll ein Benutzer etwas eingeben?

Zitat
Wenn Du sie nicht überzeugen kannst, verwirre sie.
Genau. Wir müssen in Zukunft sowieso zusammenhalten und allen Benutzern erzählen, dass Notes eigentlich schwarze Magie ist und nur geweite Domino-Priester überhaupt noch den Designer starten dürfen.

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: String zusammensetzen
« Antwort #8 am: 17.06.05 - 10:50:53 »
Zitat
Wenn Du sie nicht überzeugen kannst, verwirre sie.
Genau. Wir müssen in Zukunft sowieso zusammenhalten und allen Benutzern erzählen, dass Notes eigentlich schwarze Magie ist und nur geweite Domino-Priester überhaupt noch den Designer starten dürfen.
Vergiss nicht das obligate Tieropfer vor dem Start des Designers und die Opferung der Jungfrau, bevor man die Anwendung ausrollt. ;)  ;D
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 andrew22

  • Aktives Mitglied
  • ***
  • Beiträge: 126
  • Ich liebe dieses Forum!
Re: String zusammensetzen
« Antwort #9 am: 17.06.05 - 10:51:28 »
ja genau das suche ich ;)

test = "C:\Temp\t*.csv"

* = irgendwelche Buchstaben Zahlen etc.

man muss sich das so vorstellen. Das eine Datei ins Temp Verzeichnis gelegt wird und die dann vom Agent ausgelesen wird. Der Agent kennt aber nur die Dateiendung und die ersten 2 oder 3 zeichen / buchstaben der datei der rest ändert sich täglich.

und man soll nicht jedes mal in agentcode gehen und dateinamen setzen . deshalb dachte ich könnte man das doch so machen oder ?!

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: String zusammensetzen
« Antwort #10 am: 17.06.05 - 11:00:22 »
Globs gibts in Notes nicht.

Du musst das Directory händisch auslesen, die passenden Files suchen und dann weiterbehandeln.

Alle dafür notwendigen Funktionen findest Du in der Online-Hilfe.
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 andrew22

  • Aktives Mitglied
  • ***
  • Beiträge: 126
  • Ich liebe dieses Forum!
Re: String zusammensetzen
« Antwort #11 am: 17.06.05 - 11:06:12 »
also eine Datei kommt täglich .

am Montag heißt sie test123.csv
am Dienst heißt sie test654.csv

das mal als Beispiel.

und ich kann in Lotus Script nicht den pfadnamen so setzen das eben test und .csv fest ist und das was dazwischen steht eben variabel sozusagen ?! :(

Offline ctillmanns

  • Aktives Mitglied
  • ***
  • Beiträge: 115
Re: String zusammensetzen
« Antwort #12 am: 17.06.05 - 11:14:56 »
Wenn Du weisst, wie sie heisst. bzw. Du auch vorher schon sagen kannst wie sie heissen wird, dann kannst Du das doch auch programmieren. Das sollte dann kein Problem mehr sein.
So in etwa
Falls Montag dann Variable = "123"
Falls Dienstag dann Variable = "456"
.
.
usw.
Zitat
Wenn Du sie nicht überzeugen kannst, verwirre sie.
Genau. Wir müssen in Zukunft sowieso zusammenhalten und allen Benutzern erzählen, dass Notes eigentlich schwarze Magie ist und nur geweite Domino-Priester überhaupt noch den Designer starten dürfen.

Vergiss nicht das obligate Tieropfer vor dem Start des Designers und die Opferung der Jungfrau, bevor man die Anwendung ausrollt.
Und wo findet man heute noch Jungfrauen? Dann lügt da eine und prompt hast Du einen Servercrash. Das ist zu riskant. Wir müssen uns da auf etwas anderes einigen. Wie wäre es denn mit Managern? Je höher das Gehalt um so grösser ist die Chance, dass die Anwendung auch hält was sie verspricht.

Offline andrew22

  • Aktives Mitglied
  • ***
  • Beiträge: 126
  • Ich liebe dieses Forum!
Re: String zusammensetzen
« Antwort #13 am: 17.06.05 - 11:16:43 »
genau das weiss ich ja nicht ;)

sondern ich weiss nur das immer test und endung .csv da ist ;)

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: String zusammensetzen
« Antwort #14 am: 17.06.05 - 11:22:20 »
Und wo findet man heute noch Jungfrauen? Dann lügt da eine und prompt hast Du einen Servercrash. Das ist zu riskant. Wir müssen uns da auf etwas anderes einigen. Wie wäre es denn mit Managern? Je höher das Gehalt um so grösser ist die Chance, dass die Anwendung auch hält was sie verspricht.
Manager? Auf keinen Fall, das wäre ja kein "Opfer" sondern eine Erleichterung. ;)
Man könnte ja auf CPUs ausweichen - "Oh, Cthulhu! Ich opfere Dir diesen Prozessor aus meinem 4 CPU Server, aber lass dieses Update funktionieren". Oder so in der Art.

@andrew22: Den Lösungsansatz hab ich Dir schon genannt.
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 Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: String zusammensetzen
« Antwort #15 am: 17.06.05 - 11:26:41 »
Ja Directory durchparsen und Pattern suchen. Alles was ins Muster passt wird sich gekrallt.
So was in der Richtung zum Bleistift:
Dim directorylist List As String
Dim startentryposition As Integer
Dim listofdoctypes List As String
Sub Initialize
   Dim session As New NotesSession
   Dim wksp As New NotesUIWorkspace
   Dim folder As Variant
   Dim ok As Integer
   Dim count As Integer
   
   Dim Basedir As String
   Dim extension As String
   
   listofdoctypes("doc") = "doc"
   listofdoctypes("xls") = "xls"
   listofdoctypes("ppt") = "ppt"
   listofdoctypes("txt") = "txt"
   listofdoctypes("xlt") = "xlt"
   listofdoctypes("dot") = "dot"
   listofdoctypes("rtf") = "rtf"
   
   basedir = Inputbox("Basisverzeichnis eintragen","Verzeichnis suchen","i;\")
   extension = Inputbox("Erweiterung eintragen","File Extension","xls")
   
   Startentryposition = 0
   directorylist(Cstr(startentryposition)) = basedir
   Startentryposition = startentryposition + 1
   ok = Messagebox ("folgende Daten wurden eingegeben: Verzeichnis " & basedir & " Erweiterung " & extension, 33 , "Diese Daten werden verwendet")
   If ok = 1 Then
      ' at first find all the directories
      Call finddirectories(basedir)
      ' for second get all the files in the previous found directories and rename them
      For Count = 0 To startentryposition-1
         Call renamefiles(directorylist(Cstr(Count)),extension)
      Next
      
   Else
      Messagebox "Verarbeitung wurde abgebrochen", 16 , "ACHTUNG"
   End If
End Sub
Sub finddirectories(basedir As String)
   ' finds all directory entries and subentries in a given path
   Dim filename As String
   Dim fileattribute As Integer
   Dim isdir As Integer
   Dim fromcount As Integer
   Dim setfirstentryposition As Integer
   Dim setlastentryposition As Integer
   Dim dircount As Integer
   Dim i As Integer
   
   On Error Resume Next
   
   ' save the entryposition due to the recursion
   setfirstentryposition = startentryposition   
   
   ' get the file names
   fileName = Dir$(basedir & "\*.*",16)
   Do While fileName$ <> ""
      fileattribute = Getfileattr (basedir + "\" + fileName )
      If fileattribute = 16 Then
         ' check if this is really a directory
         isdir = checkdir(basedir + "\" + Filename)
         If isdir = True Then
            If filename <> "." And filename <> ".." Then
               directorylist(Cstr(startentryposition)) = basedir & "\" & Filename
               startentryposition = startentryposition + 1
            End If
         End If
      End If
      filename = Dir$()
   Loop
   
   If setfirstentryposition < startentryposition Then
      setlastentryposition = startentryposition
      For i = setfirstentryposition To setlastentryposition -1
         Call finddirectories(directorylist(Cstr(i)))   
      Next
   End If
   
End Sub
Function checkDir( path As String ) As Integer
   
   On Error Resume Next
   
   CheckDir = False
   
   Chdrive Left( path, 1 )
   Chdir path
   
   If Curdir = path Then         
      CheckDir = True
   End If
   
End Function
Sub renamefiles(basedir,extension)
   Dim filename As String
   ' renames the files, appends the previous named extension if there is no other extension
   ' check if the 4 entry from the right side is a point
   ' get the file names
   fileName = Dir$(basedir & "\*.*",0)
   Do While fileName$ <> ""
      If Left(Right(filename,4),1) = "." Then
         If  Not Iselement(listofdoctypes(Lcase(Right(filename,3)))) Then
            Name basedir & "\" & Filename As basedir & "\" & filename & "." & Extension         
         End If
      Else
         Name basedir & "\" & Filename As basedir & "\" & filename & "." & Extension         
      End If
      filename = Dir$()
   Loop
End Sub
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline ctillmanns

  • Aktives Mitglied
  • ***
  • Beiträge: 115
Re: String zusammensetzen
« Antwort #16 am: 17.06.05 - 11:29:48 »
Eine CPU opfern? Bist Du des Wahnsinns keckste Beute? Das ist doch konzentrierte dunkle Macht? Was könnte das auslösen?
Aber Manager geht nicht, da hast Du recht.
Lagerarbeiter gingen noch.

@andrew22: Wenn Du Die Angaben nicht weisst, dann musst Du sie eingeben. FileDialog gibt es ja schon. Notes ist ganz schlecht im Raten. Das muss ich meinen Usern auch im klar machen. Aber Thomas Lösung ist schon mal eine grosse Erleichterung.

Offline andrew22

  • Aktives Mitglied
  • ***
  • Beiträge: 126
  • Ich liebe dieses Forum!
Re: String zusammensetzen
« Antwort #17 am: 17.06.05 - 12:22:19 »
fileName = Dir$(basedir & "\*.*",16)

schaut mal das funktioniert ;)

fileName = Dir$("C:\Temp" & "\test*.csv",0)

dat klappt ;)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz