VB6 speichern

Wenn ich das Alphabet schreibe …

A
B
C
D

Und Du liest dann von Oben, hast Du automatisch die richtige
Reihenfolge.

das heißt, die erste zeile wird dann jeweils „neutralisiert“?

nein, wieso? Die wird als Erste gelesen.

ist ja auch egal^^

nur das laden

Dann lass das Schreiben weg. Wenn Du die Daten nicht sichern
willst, brauchst Du dafür auch keinen Code. Aber das Laden
ergibt dann auch keinen Sinn, ist komplett überflüssig.

ich dachte der erste code sichert das?
wieso muss man dann noch schreiben?

Wenn nach dem Start des Programms in FormN.Caption immer das
Selbe steht, muss man das nicht laden, das kann dann auch so
schon da stehen.

naja, bei manchen steht da dasselbe, aber bei den „datenformen“ ändert sich das

also nochmal kurz zusammengefasst:
dein erster code (re^3 oder 4…) kommt mit leichten
änderungen bei text1.text und einem unload me in die
speicher-form

??? Wieso jetzt wieder Text1.Text, ich denke es geht um
FormN.Caption? Das hattest du nur noch nicht erzählt als ich
den Code geschrieben habe.

ja, deswegen ja die änderungen bei also wegen text1.text

in den laden-button kommt dann der code, den ich in meiner
antwort vorhin zusammengemixt habe

Ich habe keinen Code von Dir gesehen.
Wenn Du Code schreibst,dann bitte immer eine Prozedur
vollständig und mit Pre-Tag, damit ich Fehler sehen kann.

das hier

Private Sub Laden\_Click()
Open Datei For Input As #ff 
Input #ff, Zeile
Form1.Caption = Zeile
Input #ff, Zeile
Form2.Caption = Zeile
...
Input #ff, Zeile
Formn.Caption = Zeile
Close#ff
End Sub

(also im laden-cmd-button)

mfg, CheNetzer

Hallo,

ich dachte der erste code sichert das?

Du hast inzwischen geschrieben, daß Du das nicht möchtest.

wieso muss man dann noch schreiben?

Das ist doch das selbe.

Wenn nach dem Start des Programms in FormN.Caption immer das
Selbe steht, muss man das nicht laden, das kann dann auch so
schon da stehen.

naja, bei manchen steht da dasselbe, aber bei den
„datenformen“ ändert sich das

? Was für ‚Datenformen‘?

Private Sub Laden_Click()
Open Datei For Input As #ff
Input #ff, Zeile
Form1.Caption = Zeile
Input #ff, Zeile
Form2.Caption = Zeile

Input #ff, Zeile
Formn.Caption = Zeile
Close#ff
End Sub

Nein, das läuft nicht.

Vor dem Open fehlt:

ff = FreeFile

Du hast auch keine Variablen deklariert, das kann schnell zu Problemen führen.

Ich bekomme immer mehr das Gefühl, daß wir nicht zu einem Ergebnis kommen. Ich weiß einfach nicht, was das Programm nun wirklich machen soll. Aus Deinen Angaben werde ich einfach nicht schlau.

Gruß Rainer

Ich bekomme immer mehr das Gefühl, daß wir nicht zu einem
Ergebnis kommen. Ich weiß einfach nicht, was das Programm nun
wirklich machen soll. Aus Deinen Angaben werde ich einfach
nicht schlau.

hallo Rainer,

vielleicht hätte ich mein Posting doch nicht löschen sollen, da stand letzlich das Gleiche drin wie jetzt bei dir bei
„Aus Deinen Angaben werde ich einfach nicht schlau.“

Okay, mit meinem anderen Charme anders ausgedrückt, klang es anders, aber noch nicht in der Endstufe wie „Solange du nix sagen was genau vorliegt und du wollen, ich nix sagen“

Klingt hart, ich weiß, ich bin gar nicht so. Aber nehmen wir mal ein Beispiel, da hat jemand in Excel eine ListBox und will damit was auch immer machen. Okay. In Excel gibt es aber 3 Möglichkeiten eine ListBox zu haben.

Jetzt kann ich eine Lösung basteln und ich habe ja 1/3 Chance daß sie passt.

Oder aber, habe ich mir inzwischen angewöhnt, ich frage nach welche Listbox das ist. Dann erst fange ich an mir Gedanken zu machen.

Und, jetzt mal zur Angabe der Excelversion, die ist in geschätzten 80% oder mehr der Fälle nicht nötig, in den anderen Fällen aber unbedingt nötig.

Da bin ich auch stur geworden. Ich frage da nach der Version nach, wenn ich den Eindruck habe vom Problem her, bzw. der Lösung, und einschätze es könnte wichtig sein.
Erst wenn da Antwort kommt beginne ich.

Mir persönlich erspart das viel Frust, wenn du da eine Excel-Vba Lösung gebastelt hast und kannst die komplett in die Tonne kippen, grad wenns um XL2007 geht.

Naja, sorry, nur mal so meine nicht Mitternachtsgedanken aber die 21:21 Gedanken, mal schauen was die w-w-w Uhr anzeigt.

Ups, was ich eigentlich schreiben wollte habe ich vergessen, ich habe mich an dem einen Thema vertieft :smile:

Gruß
Reinhard

Hallo Reinhard,

vielleicht hätte ich mein Posting doch nicht löschen sollen,
da stand letzlich das Gleiche drin wie jetzt bei dir bei
„Aus Deinen Angaben werde ich einfach nicht schlau.“

na ja, Daten in Form_Load laden, in Query_Unload schreiben und noch ein paar Zeilen dazu daß es rund und stabil wird, ist nun nicht die große Anstrengung. :smile:

Jetzt habe ich aber widersprüchliche Angaben.

Es sollen nicht immer die selben Daten geladen werden. Welche Daten unter welchen Umständen ist unbekannt. Die Daten die geladen werden sollen, also unter bestimmten Umständen unterschiedlich sein müssen, sollen nicht verändert werden.

Das kann nicht gehen. Entweder sie werden geändert oder sie sind immer gleich.

Ich steige an dieser Stelle aus, Wunder fallen nicht im mein Fachgebiet. :smile:

Gruß Rainer

Jetzt habe ich aber widersprüchliche Angaben.

Hallo Rainer,

das ist doch was ich dir durch die Blume sagen wollte.
Du sagst „Jetzt“.
Mein „Jetzt“ wäre vie früher geschehen.

Ich hab eh nicht ganz kapiert was da gefordert wird a) wgene Vb, aber an sich überhaupt gar nicht deshalb, b) es fehlten mir von Anfang an genaue Informationen was da wo wie geschehen soll.

Ich hätte da erst mal auf exakte Informationen nachgefragt.
Ohne die hätte ich keinenCode entwickelt.

Was hast du von der Mühe und der Zeit die du auf die bisherigen Codes aufgewendet hast, wenn sich „Jetzt“ herausstellt der Anfrager will etwas anderes?
Die kannste dir ausdrucken und an die Wand hängen :smile:)

Mehr haste davon nicht, vielleicht kannst du Teilcode davon weiterverwenden um zur Lösung zu gelangen wenn aml endlich klar ist was da eigentlich geschehen soll.

Was solls, du bist zu gut für diese Welt, ich auch, aber in Vba/Vb kann ich das, alle meine Therapeuten wären begeistert wenn sie wüßten daß ich mal zumindest da der „Böse“ bin.

Und was soll ich sagen, seitdem ich es so mache klappt das super.
Zum einen hat man durch Nachfragen gleich die Eintagsfliegen vom Hals.
Das erspart sinnnlose Arbeit wenn der Anfrager das sowieso nie liest.

Sorry, ich kam wieder mla ins Plaudern.

Gute Nacht
Gruß
Reinhard

Es sollen nicht immer die selben Daten geladen werden. Welche
Daten unter welchen Umständen ist unbekannt. Die Daten die
geladen werden sollen, also unter bestimmten Umständen
unterschiedlich sein müssen, sollen nicht verändert werden.

Das kann nicht gehen. Entweder sie werden geändert oder sie
sind immer gleich.

Ich steige an dieser Stelle aus, Wunder fallen nicht im mein
Fachgebiet. :smile:

Gruß Rainer

Hallo Reinhard,

ich kürze mal wieder etwas. :smile:

es fehlten mir von Anfang an genaue Informationen was da wo
wie geschehen soll.

Hmmm, ich habe gedacht ich hätte das Problem verstanden. :frowning:

Was hast du von der Mühe und der Zeit die du auf die
bisherigen Codes aufgewendet hast, wenn sich „Jetzt“
herausstellt der Anfrager will etwas anderes?
Die kannste dir ausdrucken und an die Wand hängen :smile:)

Nur fast, eventuell findet das ja mal Jemand im Archiv. :smile:

Mehr haste davon nicht, vielleicht kannst du Teilcode davon
weiterverwenden um zur Lösung zu gelangen wenn aml endlich
klar ist was da eigentlich geschehen soll.

Da ist noch nichts, was nicht in ein paar Minuten neu getippt ist. Den Code habe ich lokal nicht gesichert …

Was solls, du bist zu gut für diese Welt …

*gg* Da habe ich in anderen Brettern schon das Gegenteil gelesen. :smile:

Wegen der Plauderei … der MOD hat versprochen, sich nicht zu beklagen. W-w-w darf (und soll) auch Spaß machen und so lange es nicht ausartet ist das ganz im Sinne der Erfinder. So wie unser Brett hier funktioniert, war w-w-w mal gemeint. Wenn es überall so wäre, hätten wir gar keine Moderatoren, dann wären die unnötig.

Gruß Rainer

Hallo Rainer,

ich kürze mal wieder etwas. :smile:

ist sehr okay, ich war wieder mal zu lang.

es fehlten mir von Anfang an genaue Informationen was da wo
wie geschehen soll.

Hmmm, ich habe gedacht ich hätte das Problem verstanden. :frowning:

Deine Glaskugel, wo kann man die kaufen?

Was hast du von der Mühe und der Zeit die du auf die
bisherigen Codes aufgewendet hast, wenn sich „Jetzt“
herausstellt der Anfrager will etwas anderes?
Die kannste dir ausdrucken und an die Wand hängen :smile:)

Nur fast, eventuell findet das ja mal Jemand im Archiv. :smile:

Bei dem Betreff „VB6 speichern“?

Was solls, du bist zu gut für diese Welt …

*gg* Da habe ich in anderen Brettern schon das Gegenteil
gelesen. :smile:

Kann ich nicht mitreden, abgesehen vom ALK Brett kenne ich dich nur von hier.
Was du in anderen Brettern treibst weiß ich nicht.
Wird wie immer sein, du hast da wohl etwas gesagt, einem passt das nicht, du kriegst Kontra.
Normaler Verlauf.

Wegen der Plauderei … der MOD hat versprochen, sich nicht zu
beklagen. W-w-w darf (und soll) auch Spaß machen und so lange
es nicht ausartet ist das ganz im Sinne der Erfinder. So wie
unser Brett hier funktioniert, war w-w-w mal gemeint. Wenn es
überall so wäre, hätten wir gar keine Moderatoren, dann wären
die unnötig.

Leider verstehen manche Mods keinerlei Spass oder ein bisschen OT.

Ich habe grad geschaut, leider ist das was ich meine schon im Archiv :frowning:

Was ist passsiert, die eine Frau hat was zum Thema gesagt oder nicht, *nixmehrweiß* aber dann die andere Frau gefragt ob das mit dem Ring geklappt hat.

Ich, „Neugier“ ist mein Zweitnick, habe dann zum eigentlichen Thema geantwortet, und dann unter PS nachgefrat um was es bei diesem Ring geht.
Was kam raus? Die eine ist Goldschmiedin und hat der anderen einen Ring „gepastelt“ weil die andere Allergieerscheinungen zeigte und wollte wissen ob das klappte.

Meine Güte, ich als Mod hätte das stehen gelassen und nicht gesperrt.
Ich hätte erst eingegriffen wenn es ausufert.

Genau so wenn sich in „meinem“ Brett, also ich da als Mod, zwei in die Haare kriegen. Das ist normal und passiert.
Ich würde das erst nach 2 Tagen feststellen und dann halt löschen.

Wichtiger finde ich etwas anderes, warum auch immer haben beide Frust und gehen aufeinander los, da ist es doch super wenn sie sich das gegenseitig sagen können, das lockert beide auf.

Was haben die davon wenn ich die Beitragsfolge lösche/ sperre, und auf den privaten Emailverkehr hinweise? Gar nix.
So ein Streit macht doch nur Spass vor Publikum!

Wo ist eigentlich dieser blöde rote Faden, den verliere ich dauernd.
Ich glaube es ist wirklich besser mal ins Bett zu gehen.

Gruß
Reinhard

Gruß Rainer

hm…
ich möchte einen cmd-button haben, der die captions von formen(„datenformen“ hatt ich sie mal genannt) speichert, alles sind zahlen.
mit nicht verändern meine ich nur, dass der user die werte nicht einfach so verändern darf, indem er die datei öffnet und die zeilen manuell verändert.(natürlich darf beim speichern überschrieben werden)
hoffe, so ist es besser

nochmal zusammengefasst:
der erste code mit load und unload kommt in den speiher-button, nur dass ich text1.text in form?.caption ändere und ein unload me anhänge, um gleich zu speichern.

Option Explicit

Private Declare Function PathFileExists \_
 Lib "shlwapi.dll" Alias "PathFileExistsA" \_
 (ByVal pszPath As String) As Long

Dim Datei As String

Private Sub Form\_Load()
 Dim Pfad As String, ff As Integer, txt As String
 Pfad = App.Path
 If Right(Pfad, 1) "\" Then
 Pfad = Pfad & "\"
 End If
 Datei = Pfad & "Textspeicher.txt"
 If PathFileExists(Datei) Then
 ff = FreeFile
 Open Datei For Input As #ff
 Input #ff, txt
 Close #ff
 Form1.Caption = txt
 Formn.Caption = txt
 End If
Unload me
End Sub

Private Sub Form\_QueryUnload(Cancel As Integer, UnloadMode As Integer)
 Dim ff As Integer
 ff = FreeFile
 Open Datei For Output As #ff
 Print #ff, Text1.Text
 Close #ff
End Sub

in den laden-button kommt mein code mit deinen ergänzungen.
(welche variablen deklariere ich als was?)

Private Sub Laden()
ff = free file
Open Datei For Input As #ff 
Input #ff, Zeile
Form1.Caption = Zeile
Input #ff, Zeile
Form2.Caption = Zeile
...
Close#ff
End Sub

mfg, CheNetzer

Hallo,

ich möchte einen cmd-button haben, der die captions von
formen(„datenformen“ hatt ich sie mal genannt) speichert,
alles sind zahlen.
mit nicht verändern meine ich nur, dass der user die werte
nicht einfach so verändern darf, indem er die datei öffnet und
die zeilen manuell verändert.(natürlich darf beim speichern
überschrieben werden)
hoffe, so ist es besser

das ist nun wieder etwas völlig anderes.
Also sichern und laden auf Mausklick, nicht beim Starten und Beenden.
Das hattest Du in der ursprünglichen Frage anders geschrieben.

Daß der Anwender die Daten manuell verändert, kannst Du nicht verhindern, das ist nicht möglich.

Was Du da tun kannst, ist nur die Daten so zu schreiben, daß sie für den Anwender unverständlich werden, er nicht weiß was er schreiben müsste um ein Ergebnis nach Wunsch zu erzielen.

Für das was Du jetzt geschrieben hast, ist der ursprüngliche Code oben komplett ungeeignet.

Ich bin jetzt mal davon ausgeganen, daß Du in allen Formen in der Caption eine Zahl stehen hast, (ob das so ist hast Du nicht erzählt, also muss ich mal wieder raten …) die beim Klick auf den Button ‚cmdSichern‘ sichern willst und beim Klick auf den Button ‚cmdLaden‘ wieder einladen. Stehen in einer Form keine Zahlen, stürzt der Code ab. Als Dezimaltrennzeichen musst Du ein Komma verwenden.

Damit man den Inhalt der Datei mit bloßem Auge nicht gut lesen kann, schreibe ich die Zahl in ein Double und schreibe die Bytes binär in die Datei. Programmierer können das auch so noch lesen, Anwender, die sonst nur spielen eher nicht.

Gruß Rainer

Option Explicit

Private Type Dt
 Wert As Double
End Type
Dim Daten() As Dt

Private Sub cmdLaden\_Click()
 Dim frm As Object, n As Integer, i As Integer
 Dim ff As Integer
 ff = FreeFile
 n = Forms.Count
 ReDim Daten(n)
 Open "c:\Daten.dat" For Binary As #ff
 Get #ff, , Daten
 Close #ff
 For Each frm In Forms
 frm.Caption = Daten(i).Wert
 i = i + 1
 Next
End Sub

Private Sub cmdSichern\_Click()
 Dim frm As Object, n As Integer, i As Integer
 Dim ff As Integer
 ff = FreeFile
 n = Forms.Count
 ReDim Daten(n)
 For Each frm In Forms
 Daten(i).Wert = CDbl(frm.Caption)
 i = i + 1
 Next
 Open "C:\Daten.dat" For Binary As #ff
 Put #ff, , Daten
 Close #ff
End Sub

ich möchte einen cmd-button haben, der die captions von
formen(„datenformen“ hatt ich sie mal genannt) speichert,
alles sind zahlen.
mit nicht verändern meine ich nur, dass der user die werte
nicht einfach so verändern darf, indem er die datei öffnet und
die zeilen manuell verändert.(natürlich darf beim speichern
überschrieben werden)
hoffe, so ist es besser

das ist nun wieder etwas völlig anderes.
Also sichern und laden auf Mausklick, nicht beim Starten und
Beenden.
Das hattest Du in der ursprünglichen Frage anders geschrieben.

oh, entschuldigung…

Daß der Anwender die Daten manuell verändert, kannst Du nicht
verhindern, das ist nicht möglich.

Was Du da tun kannst, ist nur die Daten so zu schreiben, daß
sie für den Anwender unverständlich werden, er nicht weiß was
er schreiben müsste um ein Ergebnis nach Wunsch zu erzielen.

stimmt, ich hab eh viele dateien, die kann ich dann auch ordentlich durchmischen^^

Für das was Du jetzt geschrieben hast, ist der ursprüngliche
Code oben komplett ungeeignet.


hm…
mist

Ich bin jetzt mal davon ausgeganen, daß Du in allen Formen in
der Caption eine Zahl stehen hast, (ob das so ist hast Du
nicht erzählt, also muss ich mal wieder raten …)

hab ich ja geschrieben, alles zahlen

die beim Klick auf den Button ‚cmdSichern‘ sichern willst und beim
Klick auf den Button ‚cmdLaden‘ wieder einladen. Stehen in
einer Form keine Zahlen, stürzt der Code ab. Als
Dezimaltrennzeichen musst Du ein Komma verwenden.

hab ich eh nicht^^

Damit man den Inhalt der Datei mit bloßem Auge nicht gut lesen
kann, schreibe ich die Zahl in ein Double und schreibe die
Bytes binär in die Datei. Programmierer können das auch so
noch lesen, Anwender, die sonst nur spielen eher nicht.

naja, ist noch besser^^

Option Explicit

Private Type Dt
Wert As Double
End Type
Dim Daten() As Dt

also in die form mit cmdLaden und nochmal ind die mit dem speicher-button?

Private Sub cmdLaden_Click()
Dim frm As Object, n As Integer, i As Integer
Dim ff As Integer
ff = FreeFile
n = Forms.Count
ReDim Daten(n)
Open „c:\Daten.dat“ For Binary As #ff
Get #ff, , Daten
Close #ff
For Each frm In Forms
frm.Caption = Daten(i).Wert
i = i + 1
Next
End Sub

C:\Daten.dat kann ich ja ändern, oder?^^

Private Sub cmdSichern_Click()
Dim frm As Object, n As Integer, i As Integer
Dim ff As Integer
ff = FreeFile
n = Forms.Count
ReDim Daten(n)
For Each frm In Forms
Daten(i).Wert = CDbl(frm.Caption)
i = i + 1
Next
Open „C:\Daten.dat“ For Binary As #ff
Put #ff, , Daten
Close #ff
End Sub

davor nochmal überprüfen, ob es die datei gibt, oder?
wo muss ich dann die formen angeben, die gespeichert werden sollen(nicht durchnummeriert, haben eigennamen)?
immer die namen statt frm.Caption auflisten?
wow, das wäre dann wohl die letzte frage^^

mfg, CheNetzer

also in die form mit cmdLaden und nochmal ind die mit dem
speicher-button?

‚cmd‘ heißt Command, das ist ein Button. Du wolltest einen Button anklicken. Nenn den zum Lede ‚cmdLaden‘, den zu sichern ‚cmdSichern‘ … oder denk Dir selbst Namen dafür aus, das ist ohne Bedeutung.

C:\Daten.dat kann ich ja ändern, oder?^^

Ja, natürlich. Nenn das File wie Du magst, schreib’s hin wo Du willst. Mir App.Path kannst Du es auch in das selbe Verzeichnis legen wie die Exe, das weißt Du ja schon.

davor nochmal überprüfen, ob es die datei gibt, oder?

Kannst Du tun.

wo muss ich dann die formen angeben, die gespeichert werden
sollen(nicht durchnummeriert, haben eigennamen)?

Gar nicht. Alle Formen die Du hast stehen im Objekt Forms.
Der Code sucht sich die Formen selbst.

‚For Each frm in Forms‘ … bedeutet: Für jede gefundene Form in der Liste ‚Forms‘ und weist der Variablen frm eine Instanz des Objektes der gefundenen Form zu. Das ist kürzer und stabiler als die Namen einzutippen. Wenn Du eine Form hinzufügst oder eine Form umnennst, musst Du an dem Code auch nichts ändern.

Gruß Rainer

also in die form mit cmdLaden und nochmal ind die mit dem
speicher-button?

‚cmd‘ heißt Command, das ist ein Button. Du wolltest einen
Button anklicken. Nenn den zum Lede ‚cmdLaden‘, den zu sichern
‚cmdSichern‘ … oder denk Dir selbst Namen dafür aus, das ist
ohne Bedeutung.

ja, aber ich habe den laden und speicher-button in unterschiedlichen Formen

C:\Daten.dat kann ich ja ändern, oder?^^

Ja, natürlich. Nenn das File wie Du magst, schreib’s hin wo Du
willst. Mir App.Path kannst Du es auch in das selbe
Verzeichnis legen wie die Exe, das weißt Du ja schon.

hm…

Private Sub cmdLaden\_Click()
 Dim frm As Object, n As Integer, i As Integer
 Dim ff As Integer
 ff = FreeFile
 n = Forms.Count
 ReDim Daten(n)
 Dim Pfad As String, ff As Integer, txt As String
 Pfad = App.Path
 If Right(Pfad, 1) "\" Then
 Pfad = Pfad & "\"
 End If
 Datei = Pfad & "Speicherdaten.txt"
 If PathFileExists(Datei) Then
 ff = FreeFile
 Open Datei For Input As #ff
 Input #ff, txt

 Get #ff, , Daten
 Close #ff
 For Each frm In Forms
 frm.Caption = Daten(i).Wert
 i = i + 1
 Next
End Sub

hab dann die zeile mit C:… durch den abschnitt aus dem ersten code erstetzt.
richtig?

davor nochmal überprüfen, ob es die datei gibt, oder?

Kannst Du tun.

dann also

Private Declare Function PathFileExists \_
 Lib "shlwapi.dll" Alias "PathFileExistsA" \_
 (ByVal pszPath As String) As Long
Dim Datei As String

Private Sub cmdSichern\_Click()
If PathFileExists(Datei) Then
Dim frm As Object, n As Integer, i As Integer
 Dim ff As Integer
 ff = FreeFile
 n = Forms.Count
 ReDim Daten(n)
 For Each frm In Forms
 Daten(i).Wert = CDbl(frm.Caption)
 i = i + 1
 Next
 Open "C:\Daten.dat" For Binary As #ff
 Put #ff, , Daten
 Close #ff
Else
msgbox "Datei nicht gefunden", ,"Fehler"
End If
End Sub

und halt noh das mit app.path…

wo muss ich dann die formen angeben, die gespeichert werden
sollen(nicht durchnummeriert, haben eigennamen)?

Gar nicht. Alle Formen die Du hast stehen im Objekt Forms.
Der Code sucht sich die Formen selbst.

‚For Each frm in Forms‘ … bedeutet: Für jede gefundene Form
in der Liste ‚Forms‘ und weist der Variablen frm eine Instanz
des Objektes der gefundenen Form zu. Das ist kürzer und
stabiler als die Namen einzutippen. Wenn Du eine Form
hinzufügst oder eine Form umnennst, musst Du an dem Code auch
nichts ändern.

aber die Formen, die nicht gespeichert werden, haben String-Captions:frowning:

mfg, CheNetzer

hab grad nen Fehler entdeckt^^

aber die Formen, die nicht gespeichert werden, haben
String-Captions:frowning:

ich meine natürlich die Formen, die nicht gespeichert werden SOLLEN, also die, an die der User herankommt…

mfg, CheNetzer

tja, weiß nicht, ob „dreifachantworten“ erlaubt sind, aber es gibt ja keine ändern-funktion…

ich könnte die string-captions vorm speichern auch einfach 1 nennen und nach dem laden wieder zurückbenennen…

müsste jetzt nur noch wissen, ob meine versuche mit app.path und pathfileexist(oder so…) richtig sind

mfg, CheNetzer

OT Beitrag ändern löschen

tja, weiß nicht, ob „dreifachantworten“ erlaubt sind, aber es
gibt ja keine ändern-funktion…

Hallo CheNetzer,

erlaubt schon, machen das Ganze aber noch unübersichtlicher.
Kopiere dir den Inhalt deines Beitrages den du ändern willst raus mit Strg+c, dann lösche ihn rechts mit dem Button und stelle ihn neu ein nach Abänderung.

Das geht für Normaluser solange noch keine Antwort auf den Artikel kam.

Gruß
Reinhard

ist dann ja zu spät…

mfg, CheNetzer

(Re^33 kann ich nicht mehr löschen, daher sinds jetzt 4)
okay, das mit dem app.path klappt beim Laden noch nicht ganz
und das mit dem Umbenennen könnte auch einfacher sein…
Speichern funktioniert jetzt, aber beim Laden weiß ich nicht, was ich jetzt genau eingeben soll
pathfileexist funktioniert auch schon…

ich habe auch einen Variablen String-wert als caption entdeckt…
ich könte das binary weglassen, dann erkennt man halt was da steht, aber dafür funktioniert es
Aber ich weiß nicht, wie ich das zurückändere :frowning:

mfg, CheNetzer

Hallo,

okay, das mit dem app.path klappt beim Laden noch nicht ganz

was klappt nicht? Du musst Dich deutlicher ausdrücken.

und das mit dem Umbenennen könnte auch einfacher sein…

???

Speichern funktioniert jetzt,

Zeig den Code. Wie der Qode beim Laden aussehen muss richtet sich danach, was Du beim Speichern geschrieben hast.

aber beim Laden weiß ich nicht,
was ich jetzt genau eingeben soll
pathfileexist funktioniert auch schon…

Gut.

ich habe auch einen Variablen String-wert als caption
entdeckt…

???

ich könte das binary weglassen, dann erkennt man halt was da
steht,

… und auch ändern …

aber dafür funktioniert es
Aber ich weiß nicht, wie ich das zurückändere :frowning:

Was ist ‚zurückändern‘?

Gruß Rainer

okay, das mit dem app.path klappt beim Laden noch nicht ganz

was klappt nicht? Du musst Dich deutlicher ausdrücken.

ich weiß nicht, wie ich den dateinamen UND app.path nehme

und das mit dem Umbenennen könnte auch einfacher sein…

???

also die string-aptions erst „1“ zu nennen und nach speichern/laden wieder normal

Speichern funktioniert jetzt,

Zeig den Code. Wie der Qode beim Laden aussehen muss richtet
sich danach, was Du beim Speichern geschrieben hast.

Private Sub Command9\_Click()
Form1.Caption = 1
Form2.Caption = 1
Form3.Caption = 1
Form4.Caption = 1
Form5.Caption = 1
 Dim frm As Object, n As Integer, i As Integer
 Dim ff As Integer
 ff = FreeFile
 n = Forms.Count
 ReDim Daten(n)
 For Each frm In Forms
 Daten(i).Wert = CDbl(frm.Caption)
 i = i + 1
 Next
 Dim Pfad As String, txt As String
 Pfad = App.Path
 If Right(Pfad, 1) "\" Then
 Pfad = Pfad & "\"
 End If
 Dim Datei As Variant
 Datei = Pfad & "Speicherdatei.txt"
 Open Datei For Binary As #ff
 Put #ff, , Daten
 Close #ff
End Sub

aber beim Laden weiß ich nicht,
was ich jetzt genau eingeben soll
pathfileexist funktioniert auch schon…

Gut.

wenigstens etwas :smile:

ich habe auch einen Variablen String-wert als caption
entdeckt…

???

Form3.Caption (beispiel) ändert sich (durch user bestimmbar) und ist immer ein text also string-captions
muss auch noch abgespeichert werden:frowning:

ich könte das binary weglassen, dann erkennt man halt was da
steht,

… und auch ändern …

ja, aber es sind so viele formen und wenn er einen fehler macht, stürtzt es ab^^
ich kann ihnen ja auch vertrauen…

aber dafür funktioniert es
Aber ich weiß nicht, wie ich das zurückändere :frowning:

Was ist ‚zurückändern‘?

also die binary-funktion. die ändert das ja alles ins binärsystem, das kann ich ja nicht verwenden:frowning:

tut mir leid, dass es unverständlich war, hatte nicht viel zeit und musste mich beeilen

mfg, CheNetzer

Hallo,

ich weiß nicht, wie ich den dateinamen UND app.path nehme

App.Path liefert den Pfad zurück, in dem die .exe liegt.
Weil App.Path abhängig vom Pfad mal ein Backslash am ende liefert und mal nicht, musst Du das prüfen und so ergänzen daß sicher genau ein Backslash am Ende steht. Dafür schreibe ich App.Path immer in eine Variable ‚Pfd‘ oder ‚Pfad‘.
Dieser Pfad wird dann mit dem Dateinamen ergänzt:

Adresse = Pfad & DateiName

und das mit dem Umbenennen könnte auch einfacher sein…

???

also die string-aptions erst „1“ zu nennen und nach
speichern/laden wieder normal

Was bedeutet Normal?
Du kannst Form.Caption einen Wert zuweisen, wann Du möchtest, Du musst Dir nur überlegen, bei welchem Ereignis das passieren soll und das dort hin schreiben.

Speichern funktioniert jetzt,

Zeig den Code. Wie der Qode beim Laden aussehen muss richtet
sich danach, was Du beim Speichern geschrieben hast.

Private Sub Command9_Click()
Form1.Caption = 1
Form2.Caption = 1
Form3.Caption = 1
Form4.Caption = 1
Form5.Caption = 1
Dim frm As Object, n As Integer, i As Integer
Dim ff As Integer
ff = FreeFile
n = Forms.Count
ReDim Daten(n)
For Each frm In Forms
Daten(i).Wert = CDbl(frm.Caption)
i = i + 1
Next
Dim Pfad As String, txt As String
Pfad = App.Path
If Right(Pfad, 1) „“ Then
Pfad = Pfad & „“
End If
Dim Datei As Variant
Datei = Pfad & „Speicherdatei.txt“
Open Datei For Binary As #ff
Put #ff, , Daten
Close #ff
End Sub

Das ist bis auf fünf Zeilen mein Code. Ich hatte nach Deinem gefragt, der nicht läuft.
Meinen Code kenne ich, den habe ich bei mir getestet.

aber beim Laden weiß ich nicht,
was ich jetzt genau eingeben soll
pathfileexist funktioniert auch schon…

Gut.

wenigstens etwas :smile:

ich habe auch einen Variablen String-wert als caption
entdeckt…

???

Form3.Caption (beispiel) ändert sich (durch user bestimmbar)
und ist immer ein text also string-captions
muss auch noch abgespeichert werden:frowning:

Dann schreib den Code wieder um, sichere kein Double sondern Strings.
Wenn Du nicht von allen Formen die Caption sichern willst, kannst Du entweder auf ‚For Each‘ verzichten und die Namen einzeln tippen oder anhand der Namen nur bestimmte Formen verarbeiten. Den privaten Typ kannst Du auch weg lassen. Wenn Du nur Strings schreibst, weil die Daten nun doch lesbar sein dürfen, gibt es auch keinen Grund die Datei binär zu öffnen, dann schreib ruhig zeilenweise mit Print und lies mit Input.

Dir ist schon aufgefallen, daß wir bei ‚Re^37‘ sind?

Was wir hier treiben nennt sich ‚Datenverarbeitung‘.
Das heißt: Ich kann Daten verarbeiten, die ich habe.
Wenn Du immer nur Stückchenweise Informationen lieferst, haben wir bei ‚Re^2000‘ noch kein Ergebnis.

Ich mach’s jetzt mal anders.
Ohne vollständige Information, die es mir ermöglicht einen vollständigen Code zu schreiben antworte ich nicht mehr.

Gruß Rainer