Word-vba: komplizierte konfigdatei speichern/laden

hallo,

ich bastle an einem etwas komplizierteren makro herum und möchte dort
u.a. mehrere suchen-ersetzen-läufe integrieren, die der benutzer
konfigurieren kann.
dazu möchte ich den suchen&ersetzen-dialog von meinem makro aus
aufrufen lassen, der user nimmt alle einstellungen vor, die dann in
ein mehrdimensionales array rückgespeichert werden. und das für
beliebig viele s&e-läufe.

jetzt mein problem: das array soll auch in eine datei gespeichert und
dann auch wieder nachgeladen werden können. um z.b. alles als ascii-
datei abzuspeichern, bräuchte ich ja diverse delimiter-zeichen: 1.
die zeilentrennung (z.b. ascii(13)), 2. die trennung der einzelnen
felder (z.b. ascii(9). aber sowas ist bei s&e ja erlaubt. ich kann ja
nach returns und tabs suchen… ich denke mal, dass die komplexen
s&e-abfragen von word sich nicht so leicht in ein solches schema
packen lassen. also:
wie kann ich ein multidimensionales array mit kompliziertem inhalt,
auch textuell komplizierten inhalt mittels vba in eine datei
speichern und daraus auch wieder abrufen?

bin für jeden hinweis sehr dankbar!

lieben gruß
tobias

Hallo tobias,
ich bin kein VBA-Experte aber an der Stelle wird es keine Unterscheide zu VB6 geben.

Ich würde am Anfang der Datei die Anzahl der Felder und Datensätze schreiben und diese in Schleifen mit Lineinput lesen. Stringzerlegeung ist viel zu langsam und unnötig kompliziert.

Gruß, Rainer

Ich würde am Anfang der Datei die Anzahl der Felder und
Datensätze schreiben und diese in Schleifen mit Lineinput
lesen. Stringzerlegeung ist viel zu langsam und unnötig
kompliziert.

also eine binäre datei mit einem header. hast du infos, wie ich so was mache?
also auch die theorie, die dahinter steht? mit so was hab ich mich noch nicht
auseinander gesetzt…

aber danke für den tipp!

lieben gruß
tobias

Hallo,
entschuldige, daß das so lange gedauert hat.
Ich habe immer noch überlegt, ob Dir meine Lösung wirklich hilft.
Im Ursprungsposting hatte ich den Eindruck, Du siehst das nur zu kompliziert. Du wolltest den Inhalt eines Arrays sichern und laden.
Das geht hiermit.

Dim txt(100, 100, 100) As String
Dim na, za, zl, zt As String
Dim a, b, c, i, j, k, l, n, zn As Integer

Private Sub Command1\_Click()
 Open na For Output As #1
 Print #1, a
 Print #1, b
 Print #1, c
 For i = 0 To a
 For j = 0 To b
 For k = 0 To c
 Print #1, txt(i, j, k)
 Next
 Next
 Next
 Close #1
End Sub

Private Sub Command2\_Click()
 Open na For Input As #1
 Input #1, a
 Input #1, b
 Input #1, c
 For i = 0 To a
 For j = 0 To b
 For k = 0 To c
 Line Input #1, zt
 txt(i, j, k) = zt
 Next
 Next
 Next
 Close #1
End Sub

Private Sub Command3\_Click()
 Rem Hier erzeuge ich nur einen beliebigen Inhalt für das Array,
 Rem damit der Test funktionieren kann
 a = Int(Rnd(1) \* 100) + 1
 b = Int(Rnd(1) \* 100) + 1
 c = Int(Rnd(1) \* 100) + 1
 For i = 0 To a
 For j = 0 To b
 For k = 0 To c
 n = Int(Rnd(1) \* 5) + 5
 zl = ""
 For l = 1 To n
 zn = Int(Rnd(1) \* 26) + 64
 za = Chr$(zn)
 zl = zl + za
 Next
 txt(i, j, k) = zl
 Next
 Next
 Next
End Sub

Private Sub Form\_Load()
 na = "C:\Testdatei"
End Sub

also eine binäre datei mit einem header. hast du infos, wie
ich so was mache?
also auch die theorie, die dahinter steht? mit so was hab ich
mich noch nicht
auseinander gesetzt…

aber das hier verstehe ich nicht mal im Ansatz. Welche Theorie brauche ich, um ein Array zu sichern? Was in den Variablen steht muß mich nicht interessieren, daß die so gelesen werden, wie sich geschrieben wurden, dafür sorgt VB.

Nicht sauer sein, wegen der Verzögerung, Du hast mich verwirrt. :wink:

Gruß, Rainer

hi rainer,

Das geht hiermit.

ganz herzlichen dank! super! das werde ich mir mal in ruhe alles
anschauen…

also eine binäre datei mit einem header. hast du infos, wie
ich so was mache?
also auch die theorie, die dahinter steht? mit so was hab ich
mich noch nicht
auseinander gesetzt…

aber das hier verstehe ich nicht mal im Ansatz.

tja, so ist das, wenn nicht-fachleute versuchen, den fachleuten ihre
gedanken zu erklären…

nochmal: vielen dank! ich werde das gleich alles mal austesten… und
wenn’s nicht klappt, melde ich mich nochmal.

lieben gruß
tobias

Hallo tobias,

wenn’s nicht klappt, melde ich mich nochmal.

klar, bei Problemen einfach melden.

Das Programm lief bei mir so. Ich habe es erst getestet und den Quellcode erst dann kopiert, das vermeidet Tippfehler. :wink:
Daß da laden und sichern erst auf Mausklick passiert, sollte ja kein Problem sein.

Gruß, Rainer