Domino 9 und frühere Versionen > Entwicklung
Array Frage fürs Wochenende
ata:
@Hitcher
... du hast weiter oben einen ziemlich langen Link - kannst du dem einen Umbruch geben - der Text liest sich in der Breite sehr schlecht - danke...
@koehlerbv
... ich habe gelesen, was du gepostet hattest. Nur ich will noch nicht so schnell passen - vielleicht gibt es einen Nenner, den man noch nicht kennt...
Unklar ist mir, ob in dem Bereich...
Schulung;Dokumentation;...
... mehrere Schulungen und Dokumentationen vorkommen können.
... gibt es Schlüsselwörter, an denen man eventuell einen Abschnitt erkennen kann...
... kann man die Datei auch nochmals neu in einer korrigierten Form bekommen?
ata
LisaS:
@all:
Ich habe jetzt ein neues Feld angelegt, welches ich mit @word wie folgt gefüllt habe.
die Semikolons habe ich mit / ersetzt, außer dem ist jetzt nach jedem Datensatz ein Zeilenumbruch.
01.02.2003|03.04.2003|Kundexy|Branchexy|Schulung/Dokumentation/...|fließtext;
01.02.2003|03.04.2003|Kundexy|Branchexy|Schulung/Dokumentation/...|fließtext;
01.02.2003|03.04.2003|Kundexy|Branchexy|Schulung/Dokumentation/...|fließtext;
01.02.2003|03.04.2003|Kundexy|Branchexy|Schulung/Dokumentation/...|fließtext;
.
.
.
Ich denke jetzt müßte es einfacher gehen.
Wie könnte jetzt der Code aussehen um die sechs Elemente in ein Array() zu bekommen?
Gruß
Hitcher
ata:
... die Datei Zeilenweise einlesen...
... mit
vArray = Evaluate( {@Explode( sZeile ; "|" )})
... erhälst du die einzelnen Bausteine in einem Array, die du dann auswertest - das erste Element ist ein Datum, ebenso das zweite, das dritte ist der Kunde - also
For i = 0 to Ubound(vArray)
If i = 0 Then
Datum1 = vArray(0)
Elseif i = 1 Then
Datum2 = vArray(1)
Elseif i = 1 Then
Kunde = vArray(2)
' # usw.
End If
Next
ata
koehlerbv:
ata, Hitcher will keine Textdatei lesen, sondern eine schreiben ...
Also, nochmal, was ich am 19. geschrieben habe:
- Lese das Feld aus dem Dokument in eine String-Variable
- Leere alle Variablen in Type
- Lese den String in TempString, bis Feldtrennzeichen auftaucht - schiebe String in Type.Var1 (PLAUSIBILITÄTSPRÜFUNG!)
- Lese weiter, bis nächstes Feldtrennzeichen, schiebe String in Type.Var2 (PLAUSIBILITÄTSPRÜFUNG!)
- usw.
- Bei Erreichen des Trennzeichens für Record (ist bei Dir jetzt ja wohl Chr$ (10) wird die letzte TypeVar gefüllt und das ganze mit Write #FileNo Type.Var1, Type.Var2 ... geschrieben.
- Und weiter wieder bei "Leere alle Variablen in Type
und so weiter ...
HTH,
Bernhard
LisaS:
@ata:
Also, so sieht jetzt der code aus:
--------------------------------------------------------------------
Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Dim dsp As gtDataRec2
Dim vArray As Variant
Dim sZeile As String
Dim vtxt As Variant
Dim Item As Notesitem
Dim i As Integer
Set gUIDoc = workspace.CurrentDocument
Set gDoc = gUIDoc.document
Set gvRTitem = gDoc.GetFirstItem( "ObjCont" )
Set Item = gDoc.GetFirstItem( "dspProjekte_3_1_2" )
gsUnid = gDoc.UniversalID
' Pfade werden zugewiesen
gsWorkDir="c:\"
gsFileName1 = "projekte1.txt" 'Für den Export nach Word
gsFileName2 = "projekte2.txt" 'Für die Berechnug/Anzeige in dem Dokument
vtxt=gDoc.GetItemValue( "dspProjekte_3_1_2" )
giFileNum1% = Freefile()
Open gsWorkDir+gsFileName1 For Output As giFileNum1%
giFileNum2% = Freefile()
Open gsWorkDir+gsFileName2 For Output As giFileNum2%
Forall a In vtxt
sZeile=a
vArray = Evaluate({@Explode( sZeile ; "|" )})
For i = 0 To Ubound(vArray)
If i = 0 Then
dsp.SDat = vArray(0)
Elseif i = 1 Then
dsp.EDat = vArray(1)
Elseif i = 2 Then
dsp.Firma = vArray(2)
Elseif i = 3 Then
dsp.Branche = vArray(3)
Elseif i = 4 Then
dsp.Funktion = vArray(4)
Elseif i = 5 Then
dsp.Task = vArray(5)
End If
Next
gsWritestr=dsp.SDat+"|"+dsp.EDat+"|"+dsp.Firma+"|"+dsp.Branche+"|"+dsp.Funktion+"|"+dsp.Task+"$"
Print #giFileNum1% ,gsWritestr
Write #giFileNum2% _ ,dsp.SDat,dsp.EDat,dsp.Firma,dsp.Branche,dsp.Funktion,dsp.Task
End Forall
Close giFileNum1%
Close giFileNum2%
dspMask
Attach
Call ReOpen(gDoc)
End Sub
-----------------------------------------------------------------------------------
allerdings wird in vArray(0) nichts eingelesen.
Wenn ich das richtig verstanden habe, dann müßte,
'vArray = Evaluate({@Explode( sZeile ; "|" )})',
doch die Zeile innerhalb von vArray aufbröseln.
@Bernhard:
Der Code enstpricht doch ungefähr deinem Vorschlag, nur das mit der Plausibilitäts-Prüfung habe ich noch nicht ganz geschnallt.
Gruß
Hitcher
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln