Type

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

emde

Betreff: Type

BeitragFr, März 30, 2007 16:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, ich beschäftige mich immoment mit types. Als ich den dachte das ich sie verstanden habe wollt ich mir ein kleines telefonnummerbuch programmieren. Nun bin ich so weit das man einen speichern kann und wieder ausgeben, aber das kann man auch ohne types. Nun will ich es noch mal machen und dann beide nummern eigen lassen, aber das geht nicht ganz und ich komme nicht ganz dahinter ich denke es lint am kunde.neuer=new, ich denke ich muss es anders einsetzen.

Code: [AUSKLAPPEN]
Graphics 640,480
SetBuffer BackBuffer()

Type neuer

   Field tlf
   Field name$
   Field nname$
   Field PLZ
   Field adresse$
   Field hausnr
   
End Type

Repeat

   Cls
         
      abfrage()
      
   Flip
Until KeyHit(1)

Function abfrage()

   Print "Neuer eintrag?(n)"
   Print "Einträge zeigen?(e)"
   
   eingabe$=Input(":")
   
   If eingabe="n"
   neuer()
   EndIf
   If eingabe="e"
   zeigen()
   EndIf
      
End Function

Function neuer()
         
   kunde.neuer=New neuer
   kunde\tlf=Input("Telefonnummer:")
   kunde\name$=Input("Name:")
   kunde\nname$=Input("Nachname:")
   kunde\PLZ=Input("PLZ:")
   kunde\adresse$=Input("Adresse:")
   kunde\hausnr=Input("Hausnummer:")
   abfrage()
         
End Function

Function zeigen()

   Print kunde\tlf
   Print kunde\name$
   Print kunde\nname$
   Print kunde\PLZ
   Print kunde\adresse$
   Print kunde\hausnr
   
   WaitKey
   
End Function


         


 


emde
 

ChristianK

BeitragFr, März 30, 2007 17:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Du erstellst ja in der Funktion "neuer" eine Variable namens "kunde". Die ist aber Lokal und kann nur in der Funktion verwendet werden. Du solltest sie als global am Anfang des Sorcecodes definieren:

Code: [AUSKLAPPEN]
Global kunde.neuer


Dann hast du allerdings immer nur einen Kunden, und zwar den letzten, der Angegeben wurde. Du solltest die "zeigen"-Funktion so umbauen:

Code: [AUSKLAPPEN]
Function zeigen( )
   For kunden.neuer=Each neuer
      Print kunden\tlf
      Print kunden\name
      Print kunden\nname
      Print kunden\PLZ
      Print kunden\adresse
      Print kunden\hausnr
      Print ""
   Next

   WaitKey
End Function


Dann werden alle Kunden durchgegangen, die eingetragen wurden.

Tankbuster

BeitragFr, März 30, 2007 17:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Global kunde.neuer

Also ich weiß net?!?
Bei mir sind alle Types immer global, ohne das ich das schreibe Shocked
Twitter
Download Jewel Snake!
Windows|Android
 

ChristianK

BeitragFr, März 30, 2007 17:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber nur, wenn sie nicht in einer Funktion zum ersten Mal auftauchen, ansonsten werden sie wie lokale Variablen behandelt.
 

BlackTermi

BeitragFr, März 30, 2007 17:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Blödsinn,
/edit sorry wenn das etwas brutal klang, in gewisser weise hast du natürlich recht, ist hierfür allerdings völlig uninteressant, da er nur keine for - each Schleife hatte... (ich nehm einfach mal an, das er alle kunden abfragen will)

änder deine Funktion einfach dahingehend ab:


Code: [AUSKLAPPEN]
Function zeigen()
for kunde.neuer = each neuer

   Print kunde\tlf
   Print kunde\name$
   Print kunde\nname$
   Print kunde\PLZ
   Print kunde\adresse$
   Print kunde\hausnr
   
   WaitKey
next
End Function

d-bug

BeitragFr, März 30, 2007 18:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Kurzer Hinweis:

Ein Type namens "Neuer", eine Funktion namens "Neuer" führen zwar nicht zur Fehlermeldung, können aber durchaus zu Konflikten führen. Gleiche Namen zu verwenden empfiehlt sich nicht. Meine Erfahrung!
 

ChristianK

BeitragFr, März 30, 2007 18:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry, hab da wohl was verwechselt. Aber die Variable als global zu definieren ist übersichtlicher, finde ich.
 

emde

BeitragFr, März 30, 2007 18:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen dank nun funktioniert es!!!

danke nochmals

emde

EDIT: Hallo, ich habe noch mal ne frage mit dem types geht nun wunder bar. Nun will ich sie aber auch speichern, das mache ich in einer texdatei mit in der for schleife, nun habe ich immer ein paar zeilen leerstehen lassen admit er sich nicht überschreibt, aber er speichert nur den letzten eintrag. Könnnt ihr mir helfen?

Code: [AUSKLAPPEN]

Graphics 640,480
SetBuffer BackBuffer()

Type neuer

   Field tlf
   Field name$
   Field nname$
   Field PLZ
   Field adresse$
   Field hausnr
   
End Type

Repeat

   Cls
         
      abfrage()
      
   Flip
Until KeyHit(1)

Function abfrage()

   Print "Neuer eintrag?(n)"
   Print "Einträge zeigen?(e)"
   
   eingabe$=Input(":")
   
   If eingabe="n"
   neuere()
   EndIf
   If eingabe="e"
   zeigen()
   EndIf
      
End Function

Function neuere()
         
   kunde.neuer=New neuer
   kunde\tlf=Input("Telefonnummer:")
   kunde\name$=Input("Name:")
   kunde\nname$=Input("Nachname:")
   kunde\PLZ=Input("PLZ:")
   kunde\adresse$=Input("Adresse:")
   kunde\hausnr=Input("Hausnummer:")
   abfrage()
         
End Function

Function zeigen()

For kunde.neuer=Each neuer
   Print kunde\tlf
   Print kunde\name$
   Print kunde\nname$
   Print kunde\PLZ
   Print kunde\adresse$
   Print kunde\hausnr
   
   datei=OpenFile("speichern.txt")
   WriteLine datei,""
   WriteLine datei,""
   WriteLine datei,""
   WriteLine datei,""
   WriteLine datei,""
   WriteLine datei,""
   WriteLine datei,""
   WriteLine datei,kunde\tlf
   WriteLine datei,kunde\name$
   WriteLine datei,kunde\nname$
   WriteLine datei,kunde\PLZ
   WriteLine datei,kunde\adresse$
   WriteLine datei,kunde\hausnr
   WriteLine datei,""
   WriteLine datei,""
   WriteLine datei,""
   WriteLine datei,""
   WriteLine datei,""
   WriteLine datei,""
   WriteLine datei,""
   CloseFile datei
   
   Next
   
   WaitKey
   
End Function


         


 


emde
 

joni8a

BeitragSa, März 31, 2007 17:21
Antworten mit Zitat
Benutzer-Profile anzeigen
würde mich auch interriesieren, da ich das problem auch mal hatte aber im meinem programm denn doch noch ohne types ausgekommen bin.
 

BlackTermi

BeitragSa, März 31, 2007 17:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab gerade nicht soviel zeit, versuchs mal so:
(wozu die vielen leerzeilen?)

emde hat Folgendes geschrieben:


Code: [AUSKLAPPEN]



Function zeigen()

datei=OpenFile("speichern.txt")

For kunde.neuer=Each neuer

   Print kunde\tlf
   Print kunde\name$
   Print kunde\nname$
   Print kunde\PLZ
   Print kunde\adresse$
   Print kunde\hausnr
   

   WriteLine datei,kunde\tlf
   WriteLine datei,kunde\name$
   WriteLine datei,kunde\nname$
   WriteLine datei,kunde\PLZ
   WriteLine datei,kunde\adresse$
   WriteLine datei,kunde\hausnr


   Next
   CloseFile datei
   
   WaitKey

End Function


         


 


emde
 

emde

BeitragSa, März 31, 2007 17:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen dank nun funktioniert es supi. Die vielen leerzeichen habe ich gemacht weil ich nicht wusste ob er in der textdatei alles überschreibt und so habe ich dannleerzeichen gemacht

Nochmal vielen dank für eure antowrten, emde

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group