Seite 1 von 1

gegenteil zu oFileRead.readLine ??

Verfasst: So, 05.02.2012 14:21
von der_Zerstreute
Hallo Leute ,

ich suche nun seit einigen Tagen das Internet ab nach einer Lösung für mein Problem.
Folgendes möchte ich gern machen :
1. externe CSV Datei einlesen in ein Array - Läuft !
2. Nach Anpassung der Arrays oder hinzufügen eines neuen Datensatzes soll alles neu in die CSV geschrieben werden- aaaaaarrrg ..

hier die codeausschnitte die nötig sind :
1. das einlesen ....

Code: Alles auswählen


oInputStream = CreateUnoService("com.sun.star.ucb.SimpleFileAccess").openFileRead(Adressen)
oFileRead = createUnoService("com.sun.star.io.TextInputStream")
oFileRead.InputStream = oInputStream
oFileRead.Encoding = "ISO-8859-15"
Dim Kunden(KDmax,20)

for Z = 0 to KDmax

Zeile = oFileRead.readLine
KDwork(z) = Zeile
for i=0 to 14
	semi = instr(Zeile,";")
	Kunden(Z,i) = left(Zeile,semi)
	Kunden(Z,i) = deletestr(Kunden(Z,i),";")
	Zeile = right(Zeile,len(Zeile)-semi)
next
Kunden(Z,15) = Zeile
next 
  
oInputStream.closeInput
oFileRead.closeInput
hier nun mein versuch die daten wieder zu speichern ...

Code: Alles auswählen

oOutputStream = CreateUnoService("com.sun.star.ucb.SimpleFileAccess").openFileWrite(Adressen)
oFileWrite = createUnoService("com.sun.star.io.TextOutputStream")
oFileWrite.OutputStream = oOutputStream
oFileWrite.Encoding = "ISO-8859-15"

For i = 0 to KDmax
  oFileWrite.flush = KDwork(i)
next
temp = Data(0)
for z = 1 to 15
 temp = temp & ";" & Data(z)
next
oFileWrite.flush = temp

oOutputStream.closeOutput
oFileWrite.closeOutput	
Leider wird die in "Adressen" hinterlegte CSV nicht verändert !! Was mache ich falsch?!

Ich bin langsam etwas ratlos , da ich nun seit gut einer Woche nach einer Lösung suche :(.

Danke für eure Hilfe schonmal vorweg :).

Re: gegenteil zu oFileRead.readLine ??

Verfasst: So, 05.02.2012 17:16
von Karolus
Hallo
Vmtl. hilft dir das bei deiner eigentlichen Frage nicht weiter, aber die Dinge in deinen for...next Schleifen sehen irgendwie etwas obskur aus, kennst du die Runtimefunktionen 'split()' und 'join()' ?

Code: Alles auswählen

sline = "bla;blub;20;noch ein halber Satz"
aline = split( sline , ";")  ' sline wird an den ;-semicolon in ein Array gesplittet.
'↓zum angucken
for i = 0 to ubound( aline() )
print aline(i)
next
'____
' und nun wieder zusammensetzen zu einem String:
new_sline = join( aline() , "@" ) 'zur Abwechslung mal @-getrennt !
print new_sline
Gruß Karo

Re: gegenteil zu oFileRead.readLine ??

Verfasst: So, 05.02.2012 22:08
von der_Zerstreute
Hallo Karo ,

das ist zwar richtig mit der Funktion , nur leider hilft sie mir bei meinem Multi-Array nicht weiter ..
Ich die Daten in dieser Form brauche , sprich ca 20 Datensätze pro Arrayfeld. (Array (x,20))

aber Danke trotzdem

Re: gegenteil zu oFileRead.readLine ??

Verfasst: Mo, 06.02.2012 00:29
von Karolus
Hallo
der_Zerstreute hat geschrieben:Hallo Karo ,

das ist zwar richtig mit der Funktion , nur leider hilft sie mir bei meinem Multi-Array nicht weiter ..
Ich die Daten in dieser Form brauche , sprich ca 20 Datensätze pro Arrayfeld. (Array (x,20))
Meinst du ..., lass mal fogendes laufen:

Code: Alles auswählen

Sub multiarray_beispiel()

sstring = "a,b,c"& chr(10) & "2,3,4" &chr(10) & "x,y,z"
msgbox sstring
alines = split(sstring, chr(10))
for i = 0 to ubound(alines)
	msgbox alines(i)
	elems = split(alines(i),",")
	for n = 0 to ubound( elems )
		msgbox elems(n)
	next n
next i

End Sub
Karo

Re: gegenteil zu oFileRead.readLine ??

Verfasst: Mo, 06.02.2012 17:25
von der_Zerstreute
Hallo Karo,

Wenn ich den code richtig lese habe ich am Ende wieder zwei Variablen mit Datensätzen ?!. Ich möchte aber eine Variable nach dem Bautyp Data(x,y).
Aber grundsätzlich ist das ein guter Ansatz. Ich werde mir das mal zu meinen Unterlagen packen ;). Danke ...

Leider habe ist damit aber mein Problem immer noch nicht gelöst , nämlich das das Makro nix abspeichert bzw, die Datei nicht aktuallisiert :(.

Hat vieleicht noch jemand ne Idee ?