Mein Programm klappt nicht:(

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2, 3

Neue Antwort erstellen

Kleiner satan

BeitragDi, Jul 11, 2006 14:17
Antworten mit Zitat
Benutzer-Profile anzeigen
So hab noch n problem!
ich mach grad díe highscore liste...naja...ich bin halt noch anänger ist etwas umständlich geschrieben;)

Code: [AUSKLAPPEN]

[...]

name1 = OpenFile("1name.txt")
name2 = OpenFile("2name.txt")
name3 = OpenFile("3name.txt")
name4 = OpenFile("4name.txt")
name5 = OpenFile("5name.txt")
zahl1 = OpenFile("1zahl.txt")
zahl2 = OpenFile("1zahl.txt")
zahl3 = OpenFile("1zahl.txt")
zahl4 = OpenFile("1zahl.txt")
zahl5 = OpenFile("1zahl.txt") 
zahl1 = ReadByte(zahl1)
zahl2 = ReadByte(zahl2)
zahl3 = ReadByte(zahl3)
zahl4 = ReadByte(zahl4)
zahl5 = ReadByte(zahl5)
If pkt < zahl5 Then stand = 6
If pkt = zahl5 Then stand = 5
If pkt > zahl5 And pkt < zahl4 Then stand = 5
If pkt = zahl4 Then stand = 4
If pkt > zahl4 And pkt < stand3 Then stand = 4
If pkt = zahl3 Then stand = 3
If pkt > zahl3 And pkt < stand2 Then stand = 3
If pkt = zahl2 Then stand = 2
If pkt > zahl2 And pkt < stand1 Then stand = 2
If pkt = zahl1 Then stand = 1
If pkt > tahl1 Then stand = 1
Select stand
 Case 1:
  WriteByte zahl5, Asc(zahl4)
  WriteByte zahl4, Asc(zahl3)
  WriteByte zahl3, Asc(zahl2)
  WriteByte zahl2, Asc(zahl1)
  WriteByte zahl1, Asc(pkt)
 
  WriteByte name5, Asc(name4$)
  WriteByte name4, Asc(name3$)
  WriteByte name3, Asc(name2$)
  WriteByte name2, Asc(name1$)
  WriteByte name1, Asc(name$)
 Case 2:
  WriteByte zahl5, Asc(zahl4)
  WriteByte zahl4, Asc(zahl3)
  WriteByte zahl3, Asc(zahl2)
  WriteByte zahl2, Asc(pkt)
 
  WriteByte name5, Asc(name4$)
  WriteByte name4, Asc(name3$)
  WriteByte name3, Asc(name2$)
  WriteByte name2, Asc(name$)
 Case 3:
  WriteByte zahl5, Asc(zahl4)
  WriteByte zahl4, Asc(zahl3)
  WriteByte zahl3, Asc(pkt)
 
  WriteByte name5, Asc(name4$)
  WriteByte name4, Asc(name3$)
  WriteByte name3, Asc(name$)
 Case 4:
  WriteByte zahl5, Asc(zahl4)
  WriteByte zahl4, Asc(pkt)
 
  WriteByte name5, Asc(name4$)
  WriteByte name4, Asc(name$)
 Case 5:
  WriteByte zahl5, Asc(pkt)
 
  WriteByte name5, Asc(name$)
 Case 6:
  stand = 0
 Case 0:
  stand = 0
End Select

[...]


Das problem ist das die meldung komt: Variable type mismatch
und dabei makiert er die zeile: WriteByte name5, Asc(name4$)

was ist damit nicht in ordung??
 

Dreamora

BeitragDi, Jul 11, 2006 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
name4 ist ein Int und zwar ein Handle für eine Datei die du oben geöffnet hast.

sollte das zahl4$ heissen oder so?
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Kleiner satan

BeitragDi, Jul 11, 2006 14:23
Antworten mit Zitat
Benutzer-Profile anzeigen
ne
das soll ja so heißen weil der ja in die datei schreiben soll
 

Dreamora

BeitragDi, Jul 11, 2006 14:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja aber name4 bzw. nameX allgemein ist eine Zahl und kein String.
Da macht das $ am schluss keinen Sinn (bzw. ist sogar falsch, wie dir ja der Compiler mit Type missmatch *-> falscher Datentyp* auch mitteilt) und somit das ASC auch nicht, weil eine Int 4 Byte lang ist. Sprich dort müsstest du statt writebyte writeint nehmen und das Asc() sowie das $ weglassen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Kleiner satan

BeitragDi, Jul 11, 2006 14:26
Antworten mit Zitat
Benutzer-Profile anzeigen
raff ich nicht
 

Dreamora

BeitragDi, Jul 11, 2006 14:52
Antworten mit Zitat
Benutzer-Profile anzeigen
name4 ist eine Zahl.
name4$ wäre ein String.

du hast aber oben name4 schon als Zahl deklariert, somit kannst du innerhalb des gleichen Codeblocks (funktion oder gesamtes Programm falls es global ist), kein name4 mehr deklarieren, da es bereits als Int existiert.

Deswegen passt ihm auch dein versucht aus name4 name4$ zu machen nicht.
Die Funktion Asc() hingegen erwartet einen String. Bringst du dort keinen String, macht das auch keinen Sinn mehr.

Allerdings bringt dort auch ein ersetzen nichts. Denn die Handles für die Dateien sind nicht statisch, sie sagen auch nichts über die Datei oder den Dateinamen aus. Sprich diese zu speichern ist wertlos.
Da müsstest du schon den namen speichern und dann würde dir WriteByte nichts bringen, da das nur 1 Buchstaben speichert, nicht den namen.

Am besten guckst du nochmal in die Hilfe, was $, %, # genau machen und was die Write - Read Befehle tun und nicht tun bzw. was sie erwarten zum schreiben.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Jan_

Ehemaliger Admin

BeitragDi, Jul 11, 2006 14:58
Antworten mit Zitat
Benutzer-Profile anzeigen
uff,
sehr viel Falsch.

das gane läuft so ab,

1. 1ne Datei öffnen
2. WErte auslesn
3. Datei schließen
4. Werte Sortieren
5. neuen hinzufügen, falls größer
6. Datei öffnen
7. neue Werte speichern
8. Datei schließen
between angels and insects

Gehe zu Seite Zurück  1, 2, 3

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group