Type
Übersicht

emdeBetreff: Type |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Global kunde.neuer
Also ich weiß net?!? Bei mir sind alle Types immer global, ohne das ich das schreibe ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Aber nur, wenn sie nicht in einer Funktion zum ersten Mal auftauchen, ansonsten werden sie wie lokale Variablen behandelt. | ||
BlackTermi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sorry, hab da wohl was verwechselt. Aber die Variable als global zu definieren ist übersichtlicher, finde ich. | ||
emde |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
würde mich auch interriesieren, da ich das problem auch mal hatte aber im meinem programm denn doch noch ohne types ausgekommen bin. | ||
BlackTermi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group