Domino 9 und frühere Versionen > Entwicklung

Array Frage fürs Wochenende

<< < (3/4) > >>

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