DIM Felder Problem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

ssj-goku

Betreff: DIM Felder Problem

BeitragFr, Jan 25, 2008 21:45
Antworten mit Zitat
Benutzer-Profile anzeigen
HI Leute,

also ich wollte mal mit den Dim Feldern rumspielen bzw ÜBEN.
Ich hab mir gedacht ich speichere Name Vorname und Telefon in die Felder, nun mein Problem ist wenn ich jetzt mehrer Eingaben über Input Name, Vorname usw eingebe die wiederum überschrieben werden. Also kann mir jemand da ein Tip geben wie ichs besser machen kann.

Jetziger stand wo überschrieben wird

Code: [AUSKLAPPEN]


name$ = input("Name: ")
vorname$ = input("Vorname: ")
telefon$ = inpu("Telefon-Nr.: ")

dim Daten(3)
;einlesen
Daten$(1) = name$
Daten$(2) = vorname$
Daten$(3) = telefon$
;ausgabe
for i = 1 to 3
 write Daten$(i) + ""
next


ps: sry wegen Rechtschreibfehler

mfg Goku
AMD 64 3500+ 2GB RAM GF6600 GT 128 RAM

mas93

BeitragFr, Jan 25, 2008 21:47
Antworten mit Zitat
Benutzer-Profile anzeigen
geht ganz einfach mit ner schleife.

Tu das alles einfach in ne repeat schleife.
Nur das hier muss davor:dim Daten(3)

mfg
mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

The_Nici

BeitragFr, Jan 25, 2008 21:57
Antworten mit Zitat
Benutzer-Profile anzeigen
ql:Write ist veraltet, benutze ql:Print oder im Grafikmodus ql:Text

Dazu fängt ein Array bei 0 an. Du hast somit 4 Einträge, anstatt nur 3.

So, nun, du willst ein Telefonbuch machen.
Ich würde dafür Types nehmen. Informiere dich mal über Robsite, dort gibts ein hübsches Type-Tutorial.

Code: [AUSKLAPPEN]

Type Eintrag
   Field name$
   Field adress
   Field phonenumber
End Type

ssj-goku

BeitragFr, Jan 25, 2008 21:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Erst einmal danke für die schnelle Antwort Smile .
Ich hab das alles in einer while schleife drin, auser dim daten$(3) wie du es gesagt hast und trozdem will das nicht so ganz klappen.

hier mal der ganze quellcode:

Code: [AUSKLAPPEN]

Graphics  400,200,1,2
SetBuffer BackBuffer()

Global status = 1
Global Name$
Global Vornamen$
Global Telefon$
Dim Daten$(3)

While status = 1

Cls

Text 10,20, "1- Eintragen"
Text 10,40, "2- Suchen"
Text 10,60, "3- Verzeichnis"
Text 10,80, "4- Ende"

Locate 10,100
auswahl = Input("")

If auswahl = 1 Then
 Eingabe()
Else If auswahl = 2 Then
 Suche()
Else If auswahl = 4 Then
 status = 0
Else If auswahl = 3 Then
 Verzeichnis()
Else
 Text 10,120, "Ungültige Eingabe!!!"
End If

Daten$(1) = Name$
Daten$(2) = Vornamen$
Daten$(3) = Telefon$



Wend



;;;;;;;;;;;;;;;FUNKTIONEN
Function Eingabe()
Cls
Locate 10,20
 Name$ = Input$("Bitte geben Sie Ihren Namen ein: ")
 Vornamen$ = Input$("Bitte geben Sie Ihren Vornamen ein: ")
 Telefon$ = Input$("Bitte geben Sie Ihre Telefon-Nr. ein: ")

Flip
End Function
;;;;;;;;;;;;;;;;;;;;;;
Function Suche()
Cls
Print "Suchen"
WaitKey
Flip
End Function
;;;;;;;;;;;;;;;;;;
Function Verzeichnis()
Cls
For i = 1 To 3
 Write Daten$(i) + " "
Next
Print ""
WaitKey
Flip
End Function


Da ist jetzt bischen zuviel schwachsinniges drinne also nicht beachten
AMD 64 3500+ 2GB RAM GF6600 GT 128 RAM

ssj-goku

BeitragFr, Jan 25, 2008 22:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Smile danke für den gut gemeinten tip mit der 0, doch ich fang gerne immer bei 1 an Very Happy und TYPES wollte ich erstmal weglassen, will mich mehr auf DIM Felder schlauer machen
AMD 64 3500+ 2GB RAM GF6600 GT 128 RAM
 

Shark

BeitragFr, Jan 25, 2008 22:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem bei deinem Code ist es, dass du nur Daten abspeicherst aber nicht den Eintrag.

Was ich damit sagen will ist, dass du eine zweidimensionales Dim brauchst.
Pro Person gibt es ein Eintrag.

Pseudo Code:

Dim Telefonbuch(100,3)

Bei der hinternen Zahl speicherst du jeweils die Daten wie Vorname und Name und Telefonnummer ab.
Und die Zahl davor ist sozusagen der Index, der benötigt wird.
Nach jedem Eintrag musst du den Index um 1 erhöhen, sonst passiert, dasselbe wie bei deinem jetzigen Code. Die Daten würden einfach überschrieben werden.

mfg Shark

ssj-goku

BeitragFr, Jan 25, 2008 22:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Very Happy besten dank ich versuch es mal umzusetzen
AMD 64 3500+ 2GB RAM GF6600 GT 128 RAM

ToeB

BeitragFr, Jan 25, 2008 22:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich hab mal sowas programmiert, nur leider mit Types... Hat aber eine Such Function xD

Code: [AUSKLAPPEN]
Graphics 800,600,16,2
SetBuffer BackBuffer()

Type p
Field name$
Field vorname$
Field tel
End Type

Global p.p
SetNames()
main()

Function main()
Repeat
Print "1- Hinzufügen"
Print "2- Ansehen"
Print "3- Suchen"
Print "4- Beenden"
i = Input("")
Select i
Case 1
Add()
Case 2
Show()
Case 3
Search()
Case 4
End
End Select
Until KeyHit(1)
End
End Function

Function Add()
p.p = New p
Print "-Hinzufügen-"
p\vorname$ = Input("Vorname : ")
p\name$ = Input("Nachname : ")
p\tel = Input("Telefonnummer : ")
Print "Danke !"
Print "Daten erfolgreich eingetragen."
FlushKeys()
WaitKey()
End Function

Function show()
Print "-Anzeigen-"
Var = 0
For p.p = Each p
Var = Var + 1
Print Var + " : "+p\vorname$+" "+p\name$+" / "+p\tel
Next
If Var > 0 Then
Print "Alle Daten Angesehen !"
Else
Print "Keine Daten vorhanden !"
EndIf
FlushKeys()
WaitKey()
End Function

Function Vergleich(tt1$,tt2$)
For i = 1 To Len(tt1$)
If Mid(tt1$,i,Len(tt2$)) = tt2$ Then Return 1
Next
End Function

Function Search()
Print "-Suche-"
Print "Gib bitte einen Teil des Namens oder Nachnamens an !"
nam$= Upper(Input(">"))
Var = 0
Print "Suchergebnisse : "
For p.p = Each p
Var = Var + 1
tt1$ = Upper(p\name$)
tt2$ = Upper(p\vorname$)
If Vergleich(tt1,nam$) Or Vergleich(tt2,nam$) Then
Print Var + " : "+p\vorname$+" "+p\name$+" / "+p\tel
EndIf
Next
Print "Keine weiteren namen gefunden !"
FlushKeys()
WaitKey()
End Function

Function SetNames()
Read rr
For i = 1 To rr
p.p = New p
Read p\vorname$,p\name$,p\tel
Next
End Function


.Namen
Data 10
Data "Ulf","Müller",123456
Data "Heinz","Lacker",556677
Data "Karl","Becker",098723

Data "Otto","Meinsu",887703
Data "Lucky","Luke",666666
Data "Tobias","Klap",787878

Data "Otto","Hünersuppe",129854
Data "Karl","Klosett",883311
Data "Friederich","Lachgas",7693764

Data "Franz","von Hahn",555555


Ich hoffe du kannst damit was anfangen...

mfg Crack93
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

ssj-goku

BeitragFr, Jan 25, 2008 23:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Besten Dank nur das mit den ganzen . und / ist für mich unübersichtlich besser gesagt schwer da durchzublicken. Bin noch ein Anfänger Very Happy deswegen wollte ich auch eigentlich aud dim felder zurückgreifen. Ich werde mich mal durch den Programm durcharbeiten und schauen wie es mit Types geht.

Mfg Goku
AMD 64 3500+ 2GB RAM GF6600 GT 128 RAM

ToeB

BeitragFr, Jan 25, 2008 23:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Also wenn du sowas mit einem Adressbuch machen willst kommst du leider um Types nicht herum Wink

Aber les dir mal auf www.blitzbase.de die Tuts zum Thema Types durch ....

mfg Crack93
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

BladeRunner

Moderator

BeitragSa, Jan 26, 2008 13:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Write ist veraltet, benutze Print oder im Grafikmodus Text

Write ist aus demselben Standard wie print Wink Um genau zu sein ist Write nichts anderes als ein Print ohne Carriage Return (und Linefeed).
Beide Befehle sollte man in Programmen mit Grafikausgaben nicht mehr verwenden.
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

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group