Problem mit Writedata & Co! Help!

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

eckstein

Betreff: Problem mit Writedata & Co! Help!

BeitragSa, Mai 21, 2011 18:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallö erst mal.
Ich will mit BB eine Art Lexikon programmieren, bei dem man im Programm Einträge hinzufügen kann.
Die einzelnen Einträge werden in mit WriteString$ in eine .dat - Datei geschrieben.
Jetzt das Problem:
So, wie ich das programmiert hab, wird immer nur der erste Eintrag der Datei überschrieben.
Ich wil aber, dass immer ein neuer dazukommt.
Question Wie mach ich dass??? Question

Rolling Eyes Rolling Eyes eckstein Rolling Eyes Rolling Eyes
 

eckstein

Betreff: Sorry, Fehler

BeitragSa, Mai 21, 2011 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry, meinte nätürlich "WriteFile"...

Sir Gauss der III

BeitragSa, Mai 21, 2011 20:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
So, wie ich das programmiert hab, wird immer nur der erste Eintrag der Datei überschrieben.


Wie hast du denn Programmiert? setzt mal rein.

evtl. stimmt eine Variable nicht, die Zielatei, eine Schleife, ........
da gibt es jetzt so einfach zu viele Möglichkeiten.

Johannes´

BeitragSa, Mai 21, 2011 21:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Das kann dadurch passieren, dass du die Datei für jeden Eintrag neu öffnest. Dann wird jedesmal von vorne angefangen. Wenn das so ist, solltest du SeekFile benutzen, um die Schreibposition zu setzen.

Midimaster

BeitragSo, Mai 22, 2011 1:14
Antworten mit Zitat
Benutzer-Profile anzeigen
für dein Projekt könnte das Anlegen einer INI-Datei genau das richtige sein. Hier kann man bei beliebiger Größe gezielt Einträge herauspicken, die Einträge auch ändern und jederzeit neue Einträge hinzufügen. Dabei muss man sich nie Gedanken über die Gesamtdatei machen.

Schau Dir mal mein Tutorial dazu an: https://www.blitzforum.de/foru...hp?t=33651
 

eckstein

Betreff: Mein Versuch

BeitragSo, Mai 22, 2011 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
So hab ich versucht, dass hin zu kriegen: (ist vermutlich totaler Schwachsinn...)

edit = ReadFile(jon$)
Repeat
test$ = ReadString$(edit)
Zaehler = Zaehler + 1
Until test$ = ""
CloseFile(edit)
Zaehler = Zaehler - 1

(Das soll rauskriegen, wie viele Einträge in der Datei sind)

edit = WriteFile(file$)
If Zaehler = 0 Then Goto ende
WriteString$(edit,posi1$)
ElseIf Zaehler = 1 Then Goto ende
WriteString$(edit,posi2$)
ElseIf Zaehler = 2 Then Goto ende
WriteString$(edit,posi3$)
ElseIf Zaehler = 3 Then Goto ende
WriteString$(edit,posi4$)
ElseIf Zaehler = 4 Then Goto ende
WriteString$(edit,posi5$)
EndIf
.ende
WriteString$(edit, neuereintrag$)

PS: BB meckert immer bei dem " WriteString$(edit,posi1$)"
 

eckstein

Betreff: @ Midimaster:

BeitragSo, Mai 22, 2011 18:34
Antworten mit Zitat
Benutzer-Profile anzeigen
So wie ich dass in deinem Tutorial verstanden habe,
gibst du jedem Eintrag einen Namen, unter dem man den entsprechenden Eintrag findet.
Ich müsste aber rausfinden, welcher Eintrag noch leer ist, und dass kann sich ja ändern.
Oder hab ich da was falsch verstanden?

Midimaster

BeitragSo, Mai 22, 2011 18:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Einträge könnten als Überschrift immer die Nummer enthalten:

Ini-Datei:
Zitat:
[Allgemein]
Anzahl=3
[Nr 1]
Begriff=Auto
Text=benzinbetriebenes Fahrzeug...
[Nr 2]
Begriff=Amerika
Text=Land der unbegrenzten...
[Nr 3]
Begriff=Berta
Text=schöner Frauenname Smile



Der Zugriff erfolgt dann über....
BlitzBasic: [AUSKLAPPEN]


Wieviele=IniLesen("Allgemein","Anzahl")

Print "1. Stichwort: " + IniLesen("1","Begriff")
Print "1. Erklärung:" + IniLesen("1","Text")


einen neuen Eintrag nimmst Du auf mit....

BlitzBasic: [AUSKLAPPEN]

Wieviele=IniLesen("Allgemein","Anzahl")
Wieviele=Wieviele+1
IniSchreiben "Allgemein", "Anzahl", Wieviele
IniSchreiben "Nr" + Wieviele, "Begriff", "Caesar"
IniSchreiben "Nr" + Wieviele, "Text", "wichtige Figur bei Asterix"



Du musst dich dabei nicht von vorneherein auf eine best. Anzahl Beiträge festlegen. Das ganze bleibt flexibel und kann endlos erweitert werden. ebenso ist es möglich manchen Einträgen Bilder oder andere Merkmale hinzuzufügen, ohne das bei jeden Eintrag tun zu müssen:

Ini-Datei:
Zitat:
[Allgemein]
Anzahl=3
[Nr 1]
Begriff=Auto
Text=benzinbetriebenes Fahrzeug...
Audio=ferarri.ogg
[Nr 2]
Begriff=Amerika
link=www.goggle.de/....
Text=Land der unbegrenzten...
[Nr 3]
Begriff=Berta
Bild=DickeTanteBerta.png
Text=schöner Frauenname Smile
 

eckstein

Betreff: Danke!

BeitragSo, Mai 22, 2011 19:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Dankeschön!
Glaube, ich kann damit was anfangen.

hazumu-kun

BeitragMo, Mai 23, 2011 22:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weise dich mal auf die Existenz von Codeboxen hin:
Code: [AUSKLAPPEN]
Das hier ist eine


Verwenden kannst du sie mit dem Button "Code" unter den Smileys.

Niemand hier liest gerne Sourcecode ohne Codebox, weil die Schrift dann proportional ist, was bei Codes den Lesefluss hindert.
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent
 

eckstein

Betreff: Ah!

BeitragDi, Mai 24, 2011 14:49
Antworten mit Zitat
Benutzer-Profile anzeigen
OK also
Code: [AUSKLAPPEN]
 so

hazumu-kun

BeitragDi, Mai 24, 2011 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Gut Smile
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann
-> nicht omnipotent

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group