Richtig???

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

pepetigo

Betreff: Richtig???

BeitragSa, Sep 22, 2007 19:15
Antworten mit Zitat
Benutzer-Profile anzeigen
BladeRunner war mein programm richtig????
aber mein Code geht nicht in der .dat datei schreibt er immer nur die 4 Sachen und es sollen ja die Vier und beim nächsten mal ncoh mal 4 teile erstellt werden.
Vielleicht kann man ja sagen wo er es in die .dat Datei reinschreibt, so wie locate, und es dann immer erhöhen???
thx

Code: [AUSKLAPPEN]

Graphics 640, 480, 24, 2

Global y1 = 0
Global hour$ = "h"
Global datum = ""
Global zeit = ""
Global arbeit$ =""
Global geld = ""

Print "Datum" Text 100, 0, "Zeit" Text 160, 0, "Arbeit" Text 579, 0, "Geld"

Repeat

datum = datum + 1
zeit = zeit + 1
arbeit = arbeit + 1
geld = geld + 1

If KeyHit(88)

eingabe()

EndIf


Until KeyHit(1)
End

Function eingabe()
FlushKeys
y1 = y1 +12
Locate 0, y1 datum = Input()
Text 128, y1, "min"
Locate 100, y1 zeit = Input()
Locate 160, y1 arbeit$ = Input()
Text 600, y1, "euro"
Locate 579, y1 geld = Input()

speichern()

End Function

Function speichern()

datei%=WriteFile("Tina.dat")
WriteLine datei%,"Datum:" + datum
WriteLine datei%,"Zeit: " +  zeit
WriteLine datei%,"Arbeit: "+ arbeit$
WriteLine datei%,"Geld: " + geld

CloseFile datei%

datei% = datei% + 1
End Function

ZaP

BeitragSa, Sep 22, 2007 19:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Also wenn du dich nur an eine Person richtest, reicht auch eine PM. Ansonst such mal in der OH nach SeekFile().
Starfare: Worklog, Website (download)
 

pepetigo

BeitragSa, Sep 22, 2007 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
so mit seekfile() bekomme ich es nicht hin aber es muss auch irgendwie mit meinem falschen Code gehen ???
thx Code: [AUSKLAPPEN]

Graphics 640, 480, 24, 2

Global y1 = 0
Global hour$ = "h"
Global datum = ""
Global zeit = ""
Global arbeit$ =""
Global geld = ""

Print "Datum" Text 100, 0, "Zeit" Text 160, 0, "Arbeit" Text 579, 0, "Geld"

Repeat

datum = datum + 1
zeit = zeit + 1
arbeit = arbeit + 1
geld = geld + 1

If KeyHit(88)

eingabe()

EndIf


Until KeyHit(1)
End

Function eingabe()
FlushKeys
y1 = y1 +12
Locate 0, y1 datum = Input()
Text 128, y1, "min"
Locate 100, y1 zeit = Input()
Locate 160, y1 arbeit$ = Input()
Text 600, y1, "euro"
Locate 579, y1 geld = Input()

speichern()

End Function

Function speichern()

datei%=WriteFile("Tina.dat")
WriteLine datei%,"Datum:" + datum
WriteLine datei%,"Zeit: " +  zeit
WriteLine datei%,"Arbeit: "+ arbeit$
WriteLine datei%,"Geld: " + geld

CloseFile datei%

datei% = datei% + 1
End Function

Tankbuster

BeitragSa, Sep 22, 2007 21:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Es ist doch klar, dass immernur 4 Zeilen geschrieben werden, denn sobald die 4 Zeilen geschrieben sind, wird die Datei geschlossen. Wenn die Datei dann im nächsten Durchlauf wieder geöffnet wird, dann überschreibst du alles wieder Wink
Entweder mach mit Seekfile, oder du darfst die Datei nur einmal am Anfang öffnen, und erst am Ende des Programms schließen Wink
Twitter
Download Jewel Snake!
Windows|Android

Noobody

BeitragSa, Sep 22, 2007 21:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, muss es nicht.
Warum zählst du datei% + 1, wenn datei% doch den Handle der geöffneten Datei enthält?
Und warum versuchst du es nicht mit SeekFile()? Das ist genau, was du brauchst.
Ich rate dir, auf die Ratschläge der Personen hier zu hören.

EDIT: Da war wohl jemand schneller als ich...
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun
 

pepetigo

BeitragSa, Sep 22, 2007 21:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber wie bekomme ich eine neue Variabeln erstelle oder eine Variable vergrößere???und das in meinem Code
Code: [AUSKLAPPEN]

Graphics 640, 480, 24, 2

Global y1 = 0
Global hour$ = "h"
Global datum = ""
Global zeit = ""
Global arbeit$ =""
Global geld = ""

Print "Datum" Text 100, 0, "Zeit" Text 160, 0, "Arbeit" Text 579, 0, "Geld"

Repeat

datum = datum + 1
zeit = zeit + 1
arbeit = arbeit + 1
geld = geld + 1

If KeyHit(88)

eingabe()

EndIf


Until KeyHit(1)
End

Function eingabe()
FlushKeys
y1 = y1 +12
Locate 0, y1 datum = Input()
Text 128, y1, "min"
Locate 100, y1 zeit = Input()
Locate 160, y1 arbeit$ = Input()
Text 600, y1, "euro"
Locate 579, y1 geld = Input()

speichern()

End Function

Function speichern()

datei%=WriteFile("Tina.dat")
WriteLine datei%,"Datum:" + datum
WriteLine datei%,"Zeit: " +  zeit
WriteLine datei%,"Arbeit: "+ arbeit$
WriteLine datei%,"Geld: " + geld

CloseFile datei%

datei% = datei% + 1
End Function

The_Nici

BeitragSa, Sep 22, 2007 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Aber wie bekomme ich eine neue Variabeln erstelle oder eine Variable vergrößere???

Ach, du kannst ja mal www.robsite.de anwählen, dort gibts das im aktionspack. :/
Entschuldigung, aber dass du deinen eigenen.......niiicht Code nicht verstehst, ist einfach nur schlimm.
Nochmals für dich.

X=1 ;Variable deklarieren, also jetzt ist X eins.
X=X+1 ; Jetzt ist X das X plus eins. Also jetzt 2.
 

pepetigo

BeitragSa, Sep 22, 2007 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
aber ich möchte sozusagen wenn man einmal was in Input reingeschrieben hat das dann die Variable zum Beispeil:

aaa = Input("Name:")

und das aaamöchte ich zB zum aaa_1 machen und das automatisch also dann aaa_2 usw. ???
thx

Tankbuster

BeitragSa, Sep 22, 2007 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann empfehle ich dir Arrays und Types. Dazu findest du in der OnlineHilfe ziemlich viel Wink
Twitter
Download Jewel Snake!
Windows|Android

The_Nici

BeitragSa, Sep 22, 2007 21:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie meinen?

Du gibst also eine Variable ein.
z.B.
zahl=input("Gib mal ne Zahl ein: ")
zahl=zahl+1

Also, ein Beispiel: Ich gebe 3 ein. Jetzt ist Zahl=3. Und jetzt sage ich zur zahl soll 1 addiert werden. Jetzt ists 4...

Tankbuster

BeitragSa, Sep 22, 2007 21:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Nici.. er will ein Array^^
Um es zu erzeugen schreibst du
Zitat:
Dim Variable(99)

Jetzt wurden 100 Speicherplätze festgelegt! die sehen so aus:
Code: [AUSKLAPPEN]
Variable(0)
Variable(1)
Variable(2)
Variable(3)
[...]
Variable(98)
Variable(99)

und dann kannst du alle in einer For-Schleife verändern Wink
Code: [AUSKLAPPEN]
For i=0 to 99
Variable(i)=10
Next
Twitter
Download Jewel Snake!
Windows|Android
 

pepetigo

BeitragSa, Sep 22, 2007 21:34
Antworten mit Zitat
Benutzer-Profile anzeigen
nee ich meine das der Variabel name geändert wird: aaa = Input(Name:)
aab = Input(Name:)
aac usw.

The_Nici

BeitragSa, Sep 22, 2007 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Achso, a soll also dann a2 heissen.
Also, a2=a
Nun übernimmt a2 den Wert von a.
 

pepetigo

BeitragSa, Sep 22, 2007 21:56
Antworten mit Zitat
Benutzer-Profile anzeigen
naja
so halb
was ist an meinem Code Falsch bitte noch mal schreiben den Code:
Code: [AUSKLAPPEN]

Graphics 640, 480, 24, 2

Global y1 = 0
Global hour$ = "h"
Global datum = ""
Global zeit = ""
Global arbeit$ =""
Global geld = ""

Print "Datum" Text 100, 0, "Zeit" Text 160, 0, "Arbeit" Text 579, 0, "Geld"

Repeat

datum = datum + 1
zeit = zeit + 1
arbeit = arbeit + 1
geld = geld + 1

If KeyHit(88)

eingabe()

EndIf


Until KeyHit(1)
End

Function eingabe()
FlushKeys
y1 = y1 +12
Locate 0, y1 datum = Input()
Text 128, y1, "min"
Locate 100, y1 zeit = Input()
Locate 160, y1 arbeit$ = Input()
Text 600, y1, "euro"
Locate 579, y1 geld = Input()

speichern()

End Function

Function speichern()

datei%=WriteFile("Tina.dat")
WriteLine datei%,"Datum:" + datum
WriteLine datei%,"Zeit: " +  zeit
WriteLine datei%,"Arbeit: "+ arbeit$
WriteLine datei%,"Geld: " + geld

CloseFile datei%

datei% = datei% + 1
End Function

skey-z

BeitragSa, Sep 22, 2007 22:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein Nici, du verstehst es nicht.

Aber das was du vorhast, geht so nicht, du musst schon alle Variablen, die du benötigst per Hand deklarieren und definieren, oder du machst es mit nem Array und das wurde dir ja schon beschrieben.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter
 

pepetigo

BeitragSa, Sep 22, 2007 22:02
Antworten mit Zitat
Benutzer-Profile anzeigen
ich verstehe es mit dem Arrya nicht könntest du es mir an meinem Code Demonstrieren das ich es ab jetzt immer weiß
thy
 

semtex

BeitragSo, Sep 23, 2007 0:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich zeige Dir das mal an einem Erstlingswerk, dadurch sollte Dir ein Licht aufgehen.
Desweiteren gebe ich Dir den Tip, bei NULL anzufangen und Dich durch die hiesigen Tutorials zu lesen :

Hier mal ein Beispiel wie man Einträge definiert und in einer Schleife, oder direkt auslesen kann.

Eintragen und auslesen in einer Zählschleife :

Code: [AUSKLAPPEN]

Dim Variable$(5)

Variable$(0)="Klaus"
Variable$(1)="Dieter"
Variable$(2)="Hans"
Variable$(3)="Michael"
Variable$(4)="Thomas"

For i = 0 To 5
Print Variable$(i)
Next



Einträge manuell auslesen :

Code: [AUSKLAPPEN]

Print Variable$(0)
Print Variable$(1)
Print Variable$(2)
Print Variable$(3)
Print Variable$(4)




Beides ergibt folgendes Ergebnis :

Code: [AUSKLAPPEN]

Klaus
Dieter
Hans
Michael
Thomas   



Genau so gut kannst Du damit Dein gewünschtes :

aaa = Input(Name:)

zu dem machen :

aa1 = Input(Name:)
aa2 = Input(Name:)
aa3 = Input(Name:)

Ich hoffe es hat jetzt klick bei Dir gemacht, wenn ich an diese Geschichte auch anders rangehen würde, dieses steht aber auf einem anderen Blatt.

Ausserdem gebe ich Dir noch einen weiteren Tip, Deine Postings etwas aussagekräftiger zu benennen, mit dem Motto "Mit Hilfe ich Blute unten" Wink ist niemanden geholfen.

Gute Nacht

BladeRunner

Moderator

BeitragSo, Sep 23, 2007 6:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich werde hier schliessen. Wieso ?
Weil Du nun wiederholt neue Threads erstellst die alle das selbe Thema behandeln. wie ich hier schon schrieb:
https://www.blitzforum.de/foru...020#267020
ist dies nicht zulässig.
Dennoch hast Du noch diesen Thread dazu eröffnet:
https://www.blitzforum.de/foru...hp?t=25261
dann diesen:
https://www.blitzforum.de/foru...hp?t=25284
und schliesslich diesen hier, in dem ich nun antworte.

Was haben all diese threads gemeinsam? Zum einen keinen aussagekräftigen Titel. Zum anderen lässt Du sie plötzlich ruhen und machst den nächsten auf. Und da Du schon drauf hingewiesen wurdest dass das nicht zulässig ist gibt es auch eine Verwarnung (und mindert nebenbei selbst die Lust der Hilfswütigsten dir weiter Antwort zu geben.)

Ein allerletztes Mal: Ein Thema - ein Thread. nicht dutzende. Mit vernünftigem Titel und idealerweise einer durchdachten Fragestellung.

Was das Programm angeht was Du schreiben solltest: ja, das war okay so. Deine nächste Aufgabe ist es nun das Programm so weiterzuschreiben dass es die Zahlen in einer Datei speichert und aus dieser Datei wieder ausliesst. Wir werden uns Schritt für Schritt zu Deinem Problem hangeln, und Du wirst es lösen. Und wenn ich mal nicht in 5 Minuten antworte könnte das daran liegen dass ich zB auf der Arbeit bin. Geduld ist auch was erlernbares.

Korrektur: ich werde diesen nicht schliessen, aber alle anderen Threads von Dir zu dem Thema. Alle Antworten hier hin.
Solltest Du diese simple Regel nicht einhalten können wird das die dritte Verwarnung und somit dein Abschied in dieser Runde.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

pepetigo

BeitragSo, Sep 23, 2007 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
wie macht man Seekfile() in die nächste zeile, das der zB in der 5 Zeile Anfängt???
thx
 

semtex

BeitragSo, Sep 23, 2007 20:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier mal zwei Beispiele nur als Muster zu betrachten !

Schreibe Datensatz nach ein anderer in eine Datei :

Code: [AUSKLAPPEN]

Datum$=Input$("Datum? ")
Zeit$=Input$("Zeit? ")
Arbeit$=Input$("Arbeit? ")
Geld$=Input$("Geld? ")
file= OpenFile("data.dat")
SeekFile(file%,FileSize("data.dat"))
WriteLine(file, Datum$+", "+Zeit$+", "+Arbeit$", "+Geld$)
CloseFile(file)



Lese bestimmten Datensatz wieder aus :

Code: [AUSKLAPPEN]

zeile = Input("Welche Zeile soll ausgelesen werden?")
file = OpenFile("data.dat")
While Not Eof(file)
ReadLine file : zeilen = zeilen + 1
If zeilen = zeile-1
satz$ = ReadLine(file)
Print satz$'"
EndIf
Wend




Ein Forum ist zwar zum helfen da, ich würde Dir aber trotzdem mal empfehlen selbst was zu lösen.
Ich kenne zwar die hiesigen Einsteiger Tutorials nicht genau, aber sowas ist bestimmt dort erklärt, denn solche Standard Funktionen sind wirklich Grundschul Niveau.

Die nächste Frage wird dann bestimmt sein, wie Du die Datensätze wieder splitten kannst !?
Die Zauberformeln sind dann die beliebten String Funktionen : MID$, RIGHT$, LEFT$

Schönen Abend

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group