Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 07:48

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



FormatException

Discussion on FormatException within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
kuibi1234's Avatar
 
elite*gold: 0
Join Date: Jun 2011
Posts: 142
Received Thanks: 6
FormatException

Hey ich bin noch Anfänger was das Programmieren und VB allgemein angeht. Ich habe schon ein paar kleinere Übungen gemacht sowas wie einen Taschenrechner zu schreiben etc, war auch kein Problem. Jetzt wollte ich etwas eigenes versuchen und zwar wollte ich ein Text basiertes RPG schreiben. Ich weiß auch nicht warum es dabei auftritt davor als ich etwas deklariert habe, hat es einwandfrei funktioniert sprich: Die Hp, Mp und das Geld.

FormatException:

Hero Module:

Monster Module:

Form1:

Form3:

Wäre sehr nett wenn es mir jemand erklären könnte ich bin nämlich am verzweifeln und finde im Internet keine Beispiele die so ungefähr wie mein Code ist um es irgendwie vergleichen zu können.

Danke, mfg Andrey
kuibi1234 is offline  
Old 07/28/2018, 18:43   #2



 
IceTrailer's Avatar
 
elite*gold: 150
Join Date: Sep 2010
Posts: 2,070
Received Thanks: 820
Schreib doch mal in der Zeile
Code:
 h_LV_Num_Main.Text = Hero.h_Level
stattdessen
Code:
 h_LV_Num_Main.Text = Convert.ToString(Hero.h_Level)
IceTrailer is offline  
Thanks
1 User
Old 07/28/2018, 21:05   #3
 
kuibi1234's Avatar
 
elite*gold: 0
Join Date: Jun 2011
Posts: 142
Received Thanks: 6
Erstmal danke für die schnelle Antwort, aber es funktioniert nicht, es kommt der selbe Fehler.
Und ich möchte es eigentlich als Integer rausgeben, weil es eine Zahl sein soll. Die Zeile darüber ist schon ein String welches "Level" sagt und die Zeile drunter soll Integer sein welches das Level als Zahl anzeigt.
kuibi1234 is offline  
Old 07/29/2018, 09:32   #4
Moderator


 
elite*gold: 558
Join Date: Feb 2010
Posts: 6,544
Received Thanks: 1,424
Zu dem Fehler kann ich leider nichts hilfreiches sagen, auch weil ich nie mit VB gearbeitet habe.

Aber vielleicht hilft es, wenn du uns den ganzen Fehler zeigst.

Quote:
Originally Posted by kuibi1234 View Post
Und ich möchte es eigentlich als Integer rausgeben, weil es eine Zahl sein soll. Die Zeile darüber ist schon ein String welches "Level" sagt und die Zeile drunter soll Integer sein welches das Level als Zahl anzeigt.
Ein Label kann nur Text, also einen String, darstellen. Du musst dein Level, den Integer, also in einen String umwandeln, damit das Label die Zahl auch anzeigen kann. Wenn du aus dem Integer einen String machst, sieht der Benutzer trotzdem die Zahl, genau so wie du dir das vorstellst.

Was ich jetzt allerdings nicht weiß ist, ob der VB-Compiler die Umwandlung in einen String für dich von alleine übernimmt. Wenn du noch an anderen Stellen einen Integer in den Text von einem Label packst und das funktioniert, dann wird es nicht daran liegen.
ComputerBaer is offline  
Thanks
1 User
Old 07/29/2018, 12:44   #5
 
kuibi1234's Avatar
 
elite*gold: 0
Join Date: Jun 2011
Posts: 142
Received Thanks: 6
Achso okay, also ich hab die Fehler nochmal gescreenshoted.

Fehler 1 von 2:

Fehler 2 von 2:
kuibi1234 is offline  
Old 07/30/2018, 00:46   #6
 
elite*gold: 0
Join Date: Oct 2007
Posts: 93
Received Thanks: 15
Fehler 1 steht da doch xD ungültige Konvertierung von Zeichenfolge nach integer. Aus "33" kannst du einen integer 33 machen. Aber du gibst ihm wohl etwas falsches. Was soll der computer machen wenn du ihm zb "a" gibst und sagst mach daraus eine Zahl? Fehler 2 xxxxxx. Text erwartet einen string. Also muss h_Level zu einem string konvertiert werden.
krankheit is offline  
Thanks
1 User
Old 07/30/2018, 00:59   #7
 
kuibi1234's Avatar
 
elite*gold: 0
Join Date: Jun 2011
Posts: 142
Received Thanks: 6
Quote:
Originally Posted by krankheit View Post
Fehler 1 steht da doch xD ungültige Konvertierung von Zeichenfolge nach integer. Aus "33" kannst du einen integer 33 machen. Aber du gibst ihm wohl etwas falsches. Was soll der computer machen wenn du ihm zb "a" gibst und sagst mach daraus eine Zahl? Fehler 2 xxxxxx. Text erwartet einen string. Also muss h_Level zu einem string konvertiert werden.
Und wie mache ich das? Erklärungen wäre vielleicht von Vorteil, wie gesagt bin Anfänger und weiß noch so gut wie nichts. h_Level ist schon in nem Module als Integer deklariert. Und dann soll ich es zu String umkonventieren um eine Zahl rauszugeben?

Das Ding ist, ich weiß nicht warum es aufeinmal von mir eine Konventierung verlangt. Es hat zuvor auch ganz normal funktioniert wenn ich etwas in einem Modul deklariert habe und das deklarierte dann in einer Klasse genutzt habe.
kuibi1234 is offline  
Old 07/30/2018, 12:02   #8
 
elite*gold: 0
Join Date: Oct 2007
Posts: 93
Received Thanks: 15
Aaalso 2+2 ist 4 aber "2"+"2" ist "22" (er hängt strings einfach aneinander) und du kannst mit strings halt deswegen keine mathematischen Operationen durchführen."a" + "a" ist ja auch "aa" und nicht "b". Du musst nur an der Stelle wo du es dem. Text zuweist konvertieren. Dadurch ändert sich der wert von h_level nicht. Sondern er nimmt den aktuellen wert ruft die Methode zum konvertieren auf und die Methode gibt einen string zurück und diesen darfst du dann auch dem text zuweisen. Was man sieht sind immer nur strings. Wenn du ein input schreibst und dann 3 eintippen und den wert des input ausliest steht da "3" drinnen und nicht 3 das ist wie eben erklärt ein kleiner aber feiner unterschied.
krankheit is offline  
Thanks
1 User
Old 07/30/2018, 14:45   #9
 
kuibi1234's Avatar
 
elite*gold: 0
Join Date: Jun 2011
Posts: 142
Received Thanks: 6
Quote:
Originally Posted by krankheit View Post
Aaalso 2+2 ist 4 aber "2"+"2" ist "22" (er hängt strings einfach aneinander) und du kannst mit strings halt deswegen keine mathematischen Operationen durchführen."a" + "a" ist ja auch "aa" und nicht "b". Du musst nur an der Stelle wo du es dem. Text zuweist konvertieren. Dadurch ändert sich der wert von h_level nicht. Sondern er nimmt den aktuellen wert ruft die Methode zum konvertieren auf und die Methode gibt einen string zurück und diesen darfst du dann auch dem text zuweisen. Was man sieht sind immer nur strings. Wenn du ein input schreibst und dann 3 eintippen und den wert des input ausliest steht da "3" drinnen und nicht 3 das ist wie eben erklärt ein kleiner aber feiner unterschied.
Ja, nur Problem bei der ganzen Sache ist: es zeigt mir immer noch den selben Fehler an selbst wenn ich es konventiere oder sagen wir mal ganz einfach,
ich mache jetzt bei der deklaration statt Integer, String bei h_Level. Es kommt immer noch der selbe konventierungsfehler. Das ist der Grund warum ich es nicht verstehe. Schau dir bitte den Code genauer an, falls du es nicht schon getan hast. Entweder ist da etwas allgemein falsch und ich komme nicht dahinter oder es ist was im Code falsch was durch mich verursacht wurde.

Das ist das was im Modul deklariert ist:
Code:
Public h_Level As Integer = 1
Und das in der Form1_Load Prozedur:
Code:
 h_LV_Num_Main.Text = Convert.ToString(h_Level)
kuibi1234 is offline  
Old 07/30/2018, 18:05   #10



 
Serraniel's Avatar
 
elite*gold: 2222
The Black Market: 204/1/0
Join Date: May 2010
Posts: 6,851
Received Thanks: 5,106
Hab jetzt nur mal schnell drüber geschaut, im Startpost schreibst du
PHP Code:
    Public h_Level As Integer 
Das heißt, h_level ist erst einmal nicht initialisiert. Bei Visual Basic weiß ich ehrlich gesagt nicht wie es sich dann verhält, ob es dann bei Integer mit dem Wert 0 initialisiert wird z. B. oder nicht.

Ansonsten ist das ein wenig unübersichtlich mit den ganzen Spoilern, kannst du vielleicht den Code als ganzes noch einmal posten inkl. der Zeile die den Fehler macht? Dann kann man es vllt besser nachvollziehen.

In deinen ganz am Anfang geposteten Codes zu den Forms, wo werden da denn die Variablen für h_Level etc. deklariert? Du machst
PHP Code:
Hero.h_Level 
aber man sieht nirgendswo, wo denn Hero intialisiert deklariert oder würde, du brauchst ja erst eine Instanz davon.
Serraniel is offline  
Thanks
1 User
Old 07/30/2018, 18:56   #11
 
kuibi1234's Avatar
 
elite*gold: 0
Join Date: Jun 2011
Posts: 142
Received Thanks: 6
Quote:
Originally Posted by Serraniel View Post
Hab jetzt nur mal schnell drüber geschaut, im Startpost schreibst du
PHP Code:
    Public h_Level As Integer 
Das heißt, h_level ist erst einmal nicht initialisiert. Bei Visual Basic weiß ich ehrlich gesagt nicht wie es sich dann verhält, ob es dann bei Integer mit dem Wert 0 initialisiert wird z. B. oder nicht.

Ansonsten ist das ein wenig unübersichtlich mit den ganzen Spoilern, kannst du vielleicht den Code als ganzes noch einmal posten inkl. der Zeile die den Fehler macht? Dann kann man es vllt besser nachvollziehen.

In deinen ganz am Anfang geposteten Codes zu den Forms, wo werden da denn die Variablen für h_Level etc. deklariert? Du machst
PHP Code:
Hero.h_Level 
aber man sieht nirgendswo, wo denn Hero intialisiert deklariert oder würde, du brauchst ja erst eine Instanz davon.
Also, der ganze code steht da oben schon. das Hero.h_Level ist in dem Hero Modul deklariert. Das "Hero" ist das Modul wo die h_Level Variable rausgenommen wird.
Das mit
Code:
Public h_Level As Integer = 0
Hab ich zb schon ausprobiert, ich habe es einfach nur leer gelassen als ich es kopiert habe.

Fakt ist, egal was ich mache er zeigt mir ständig diesen Konventierungsfehler an ob ich jetzt h_Level initialisiere, ihn in einen String umwandle oder alles aufeinmal, nichts funktioniert. Ich bin schon echt am verzweifeln xD
Mir wird jetzt zwar von jemandem geholfen, ich weiß aber nicht ob das etwas bringen wird oder nicht.
Trotzdem danke für deine Mühen.

#Closeresquest
kuibi1234 is offline  
Old 07/31/2018, 09:04   #12
 
elite*gold: 100
Join Date: Apr 2008
Posts: 860
Received Thanks: 1,464
Quote:
Originally Posted by kuibi1234 View Post

#Closeresquest
Magst du vielleicht erst die evtl gefundene Lösung posten damit andere von diesem thread profitieren können?
florian0 is offline  
Old 07/31/2018, 12:43   #13



 
Serraniel's Avatar
 
elite*gold: 2222
The Black Market: 204/1/0
Join Date: May 2010
Posts: 6,851
Received Thanks: 5,106
So wie sich die letzte Nachricht liest gibt es glaube ich noch keine Lösung und das war eher eine Frustreaktion?

Ich Versuche das heute Abend selber Mal in einem Demotool...
Serraniel is offline  
Old 07/31/2018, 16:56   #14
Moderator


 
elite*gold: 558
Join Date: Feb 2010
Posts: 6,544
Received Thanks: 1,424
Das Problem liegt nicht in der Zuweisung. Die Fehlermeldung bezieht sich nämlich nicht von Int -> String, sondern auf String -> Int. Außerdem soll der Fehler beim Initialisieren des Hero Moduls (was auch immer ein Modul ist) auftreten und nicht beim Zuweisen des Wertes.

Dadurch habe ich es auch gefunden:
Code:
    Public pGold_int As Integer = Form1.Label3.Text
ComputerBaer is offline  
Old 07/31/2018, 18:30   #15



 
Serraniel's Avatar
 
elite*gold: 2222
The Black Market: 204/1/0
Join Date: May 2010
Posts: 6,851
Received Thanks: 5,106
Quote:
Originally Posted by ComputerBaer View Post
Das Problem liegt nicht in der Zuweisung. Die Fehlermeldung bezieht sich nämlich nicht von Int -> String, sondern auf String -> Int. Außerdem soll der Fehler beim Initialisieren des Hero Moduls (was auch immer ein Modul ist) auftreten und nicht beim Zuweisen des Wertes.

Dadurch habe ich es auch gefunden:
Code:
    Public pGold_int As Integer = Form1.Label3.Text
> (was auch immer ein Modul ist)
Google sagt das ist wie ne Klasse die man nicht instantiieren kann, also scheinbar ne In Built Singleton Type Artiges Konstrukt.

Das würde aber nicht zu dem Screenshot hier passen:
Quote:
Originally Posted by kuibi1234 View Post
Fehler 2 von 2:
Im Anhang mal ein kleines Beispielprojekt wo ich mit 3 Methoden den Wert auch auf das Label zuweise ohne den Integer im Modul zu initialisieren, die klappen alle drei bei mir fehlerfrei ;o

PHP Code:
Module Hero
    
Public h_HitPoints As Integer 250
    
Public h_ManaPoints As Integer 70
    
Public h_Level As Integer
End Module 

PHP Code:
Public Class Form1
    
Private Sub Button1_Click(sender As ObjectAs EventArgsHandles Button1.Click
        Label1
.Text h_Level
    End Sub

    
Private Sub Button2_Click(sender As ObjectAs EventArgsHandles Button2.Click
        Label2
.Text Convert.ToString(h_Level)
    
End Sub

    
Private Sub Button3_Click(sender As ObjectAs EventArgsHandles Button3.Click
        Label3
.Text h_Level.ToString()
    
End Sub
End 
Class 
Attached Files
File Type: zip Demo Tool.zip (268.3 KB, 1 views)
Serraniel is offline  
Reply




All times are GMT +2. The time now is 07:48.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.