• 28.04.2024, 00:52
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

[vb.net] array aus text datei lesen ?

Montag, 19. Dezember 2005, 11:39

an alle visual basic .net spezis..

ist es möglich (ein recht großes) array aus einer text file auszulesen ?

messi

Re: [vb.net] array aus text datei lesen ?

Montag, 19. Dezember 2005, 12:18

warum nicht??
um was genau geht es denn?

Sebastian

Re: [vb.net] array aus text datei lesen ?

Montag, 19. Dezember 2005, 12:57

also geht darum, dass ein spielfeld für ein game (blöder uni auftrag) in ein 400er array speicher (20x20)..

jedes array steht da für ein level, ich will nun mehrere vorgefertigte arrays in eine txt datei speichern, und dann eins für eins laden..

ala :
level1 -> load from txt
level1 fertig
level 2 -> load from txt
usw..

wie mache ich das denn in vb ?

messi

Re: [vb.net] array aus text datei lesen ?

Montag, 19. Dezember 2005, 14:13

du kannst komplette objete in XMl stream speichern--> und diese dann in eine datei speichern laden. Das ganze ist in Net bereits fertig und nennt sich serilalisieren.
Das ist in .Net der einfachste weg daten aus einer datei zu zu laden und zu sichern. Man kann somit mit einem Befehl eine ganze klasse Serialisieren.

das lesen kann in etwa so aussehen:
Dim MemStream As IO.MemoryStream
MemStream = XmlConvert.StringToMemoryStream(SettingsXml) 'schriebt die XML daten in einen Memory stream
Dim Serializer As New Xml.Serialization.XmlSerializer(GetType(klassennamen))
Dim Reader As New IO.StreamReader(MemStream)

die klasse muss in etwa so def. sein:
[Serializable()]
public class CSettings
{
}

schreiben:
Dim Serializer As New Xml.Serialization.XmlSerializer(GetType(klassenname))
Dim MemStream As New IO.MemoryStream 'erzeuge Memory stream um Daten in Speicher zu schreiben
Dim Writer As New IO.StreamWriter(MemStream) 'stream writer erzeugen, mit basisstream auf den Memorystream
'Serialisieren
Serializer.Serialize(Writer, Settings) 'Serialisiere die KLasse und schreibe in den stream

--> alle public member werden serialisiert.

Sebastian

Re: [vb.net] array aus text datei lesen ?

Montag, 19. Dezember 2005, 15:07

mhmh.. das ist für mich als vb.net "Neuling" eher nicht zu verstehen.. danke für deine mühe, aber ich fürchte das ist atm noch zu hoch für mich :-[ :'(

messi

Re: [vb.net] array aus text datei lesen ?

Montag, 19. Dezember 2005, 15:27

ok,..
mann kanne es auch so machen:
mit dem ByteReader aus dem System.IO eine Datei öffnen.

Alle werte des Array hintereinander als byte int... in die datei schreiben.
und beim öffen der datei die werte in der gleichen reihenfolge einlesen.

Alle diese Funktionen sind in der MSDN mit einfachen und guten beispielen erklärt.

Re: [vb.net] array aus text datei lesen ?

Montag, 19. Dezember 2005, 17:08

zu bytereader finde ich nix in der MSDN,kann es sein dass du den binaryreader meinst ?

messi

Re: [vb.net] array aus text datei lesen ?

Montag, 19. Dezember 2005, 17:18

oh ;) ,.. ja den meinte ich,..

Re: [vb.net] array aus text datei lesen ?

Montag, 19. Dezember 2005, 17:51

jau, das funzt auf anhieb :D 8)

eine generelle frage noch:

Quellcode

1
Dim sr As StreamReader = New StreamReader("lvl1.txt")


ist es möglich, dass ich die "1" von lvl1.txt durch ne variable ersetzen kann ?

also zbsp:

Quellcode

1
Dim sr As StreamReader = New StreamReader("lvlX.txt")


wobei ich dann X durch n byval mitgebe ? problem ist halt, dass alles, was zwischen den "" steht keine variable sein kann.. zumindestens krieg ich das ned, hin dass der da dann ne variable liest..

müsste zudem irgendwie ein geklebter string sein ala "lvl" & x & ".txt" sein...

kann mir da wer helfen ? ;)

und bitte nicht gleich schlagen, bin wie schon erwähnt neuling :-[

messi

Re: [vb.net] array aus text datei lesen ?

Montag, 19. Dezember 2005, 17:57

int NummerDerConfig;
string Filename;

Filename= "lvl" + NummerDerConfig.ToString() + ".txt"

Dim sr As StreamReader = New StreamReader(Filename)



Sebastian

Re: [vb.net] array aus text datei lesen ?

Montag, 19. Dezember 2005, 18:03

wuah danke, klappt ebenfalls auf anhieb 8)

sehr cool sebastian :-* :-* :-*

eins noch..

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Try
            ' Create an instance of StreamReader to read from a file.
            Dim sr As StreamReader = New StreamReader(filename)
            Dim line As String
            ' Read and display the lines from the file until the end 
            ' of the file is reached.
            Do
                line = sr.ReadLine()
                Console.WriteLine(line)
                MessageBox.Show(line)
            Loop Until line Is Nothing
            sr.Close()
        Catch E As Exception
            ' Let the user know what went wrong.
            Console.WriteLine("The file could not be read:")
            Console.WriteLine(E.Message)
        End Try


das ist der beispielcode aus der MSDN, nur eben mit der variable anpassung, und dass er den string via ner messagebox ausgibt..

wenn ich das mache dann gibt er mir auch den inhalt der txt in ner messagebox aus, nur komischerweise kommt danach nochmal ne messagebox ohne inhalt..
und das ausgelesene lässt sich leider nicht zbsp in ner textbox oder in nem label darstellen.. was mach ich falsch ?

messi

Re: [vb.net] array aus text datei lesen ?

Montag, 19. Dezember 2005, 18:10

Was steht denn da im quelltext:

------>>>>
' Let the user know what went wrong.
Console.WriteLine("The file could not be read:")
Console.WriteLine(E.Message)
End Try


das ist deine 2. MessageBox, wenn was schief läuft mit dem einlesen der datei siehst du da den fehler, aber da alles ok ist kommt auch kein text.

schau die mal alle funktionen vom stream reader an,.. da gibt es auch sowas wie .ReadToEnd da hast du dann alles in einem string.

Und wenn ich mit dem Stram Reaader zeichenweise auslese benutze ich ne while schleife und die .seek() funktion.


Sebastian

Re: [vb.net] array aus text datei lesen ?

Montag, 19. Dezember 2005, 18:17

ok thx.. das hatte ich völlig übersehen :-[

edit: nee daran liegt es ned, wenn ich den catch teil rausnehm kommt trotzdem ne zweite messagebox..

edit2: liegt an dem do until loop.. wenn man nur eine zeile hat muss man keinen loop machen ;)



messi