Code funzt, nur warum?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Lunatix

Betreff: Code funzt, nur warum?

BeitragDi, Jun 28, 2005 11:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey, guckt euch bitte mal diesen code an (wird n AddressBuch) :

BlitzBasic: [AUSKLAPPEN]


Type Namen
Field Nam$
Field AddNam$
End Type

initnames(s$);s$= datei die geöffnet werden soll

While Not ende = 1

Cls
updatenames()
Flip

Wend
End

Function InitNames(String$)

file = OpenFile(String)

If file = 1

For i = 1 To 8+ANZ

NM.Namen = New Namen

NM\Nam$=ReadLine (file)

Select NM\Nam$

Case \"//\";der anfang einer Addresse
NM\AddNam$=ReadLine (file)
ANZ=ANZ+8
Case \"\\\";Das ende einer Addresse
ZA=ZA+1
End Select

Next
End Function

Function UpDateNames()

For NM.Namen = Each Namen

For i = 1 To ZA ;Diese Schleife
Text 0,43+tpx,NM\AddNam$ ;versteh ich absolut
tpx=tpx+20 ;nicht, weiß net warum
Next ;es überhaupt geht!

Next
End Function



[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...
 

Klaas

BeitragDi, Jun 28, 2005 11:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke das du uns auch sagst was der Compiler als Fehler nennt .... bei mir sagt er "end Function without function" .... und das liegt an dem fehldendem "end if"

BTW: ist das BB-Code bei euch auch so zerhackstückelt ? evtl. sollte man mal das CSS korrigieren

simi

BeitragDi, Jun 28, 2005 11:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Und der code geht bei dir??
ich schreib ihn malum, und kommetiere ihn, das du ihn verstehen solltest....
BlitzBasic: [AUSKLAPPEN]


Type Namen
Field Nam$
Field AddNam$
End Type

Global ZA=0 ;du brauchst es in der Funktion, also Global....

initnames(s$);s$= datei die geöffnet werden soll

While Not(KeyHit(1)) ;Ende wird nie 1 sein Wink
Cls
updatenames()
Flip
Wend
End

Function InitNames(s$) ;String ist ein BB-Befehl, den darfst du nicht als Variable benutzen....
file = OpenFile(s)

If file <> 0 ;file ist 0, wenn nichts geladen wurde, und etwas anderes wenn etwas geladen wurde....

For i = 1 To 8+ANZ
NM.Namen = New Namen
NM\Nam$=ReadLine (file)
Select NM\Nam$
Case \"//\";der anfang einer Addresse
NM\AddNam$=ReadLine (file)
ANZ=ANZ+8
Case \"\\\";Das ende einer Addresse
ZA=ZA+1
End Select
Next
End If
End Function

Function UpDateNames()
For NM.Namen = Each Namen ;mit dieser schleife gehst du alle adresseinträge durch
For i = 1 To ZA ;Diese Schleife
Text 0,43+tpx,NM\AddNam$ ;versteh ich absolut
tpx=tpx+20 ;nicht, weiß net warum
Next ;es überhaupt geht!
Next
End Function


So sollte es wahrscheinlich gehen, oder nicht Wink

Was mir nicht klar ist, wie die adressdatei aussieht, und was du mit den Variablen ZA und ANZ bezwecken willst.....

Lunatix

BeitragDi, Jun 28, 2005 11:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Das war aussem kopf.
Es funktioniert, das heisst die Datei sieht so aus ->

Zitat:

//
Kirsten J...
---
342...
Albs...
05665/4....
0170...
\\
//
Denis ....
Schenkenbergweg 1...
342...
Hal...
05665/7...
017060...
\\



Und am ende in meinem Fenste sieht es so aus ->
Zitat:

Kirsten J...

Denis ...

...

...

...


Das Zitat:
"//"
sagt BB das eine neue Addresse beginnt
das Zitat:
"\\"
sagt BB das eine Addresse zu ende ist[/quote]
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Mr.Keks

BeitragDi, Jun 28, 2005 11:57
Antworten mit Zitat
Benutzer-Profile anzeigen
tjoa, der cdode funzt, weil za null ist und somit diese sinnlose forschleife dort nicht als schleife wirkt ^^.
MrKeks.net

Lunatix

BeitragDi, Jun 28, 2005 12:04
Antworten mit Zitat
Benutzer-Profile anzeigen
ZA ist global bei mir.
ANZ auch, sie bewirkt lediglich das bei jeder neuen addresse die For schleife um acht erweitert wird.

wolltenur wissen wieso es geht, da ich ja each hatte, also müsste bei allen drei namen auch alle drei texte stehen.
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

simi

BeitragDi, Jun 28, 2005 12:05
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, za, ist eigentlich blöd, das brauchst du gar nicht Wink

Also, du willst ein Adressbuch programmieren.... du speicherst darin name, adresse, telefonnummer, und solche sacehn.... Also mach doch für alle das ein Feld im Typ.....

Jetzt willst du das auslesen: (Ich würde das so machen:)
1. Du hast eine aussere Schleife, die wird solange ausgeführt, bis die Datei zu ende ist (eof())
2. Jetzt liest du eine Zeile, und allanisierst sie:
"//" neuen Typ erstellen
"NAME=" Typefeld name mit dem nach dem "=" füllen
"TEL=" Typefeld tel mit dem nach dem "=" füllen
.....
"\\" hier setzt du den typ auf null (NA=null)

So ist das realtiv felxibel..... natürlich musst du jetzt alles umschreiben, aber ich denke es lohnt sich Wink

Lunatix

BeitragDi, Jun 28, 2005 12:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hasse eof()!! das funzt nie. Hab ein eigenes eof().

Ich will ja aber in einem linken fenster(was ja auch geht,nur warum weiß ich net) nur namen haben, man klickt auf das feld, die volle addresse wird rechts angezeigt. wollte ja nur wissen waum diese schleife in der schleife geht.
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group