' Hoffe ich habe die richtige Stelle im Forum zu diesem Thema getroffen.
' Ich bin zwar schon etwas älter, aber noch ein Anfänger im programmieren. Ich lerne mit VB 2010 und programmiere nebenher,
' um das was ich lerne auch praktisch anwenden und ausprobieren zu können ein Lottoprogramm. Ein Lottoprogramm, nicht um das Fahrad neu zu erfinden,
' sondern weil ich denke, in Diesem das meiste was ich hier lerne ( von Textausgabe über Grafikausgabe bis zur Datenbank ) auch einbauen zu können.
' So soll das Programm halt immer mitwachsen.
' Nun habe ich aber folgendes Problem. Ich habe eine Textdatei mit allen Ziehungen. Da in dieser Datei stehen aber mehr Informationen als ich brauche,
' deshalb möchte ich nur ein Teil davon in eine eigene Datei schreiben. Dafür könnte ich von euch ein paar "Denkanstöße" gebrauchen. Wie lese ich ein Array
' aus einer Textdatei aus, wenn ich nicht weis wie dieses Array genau zusammengesetzt ist. Und eine zweite Frage in dem Zusammenhang.
' Wenn ich dann meine Datei habe, kann ich diese in den Arbeitsspeicher bzw. Buffer laden, damit sie nicht jedesmal wenn ich etwas dort vergleichen
' möchte immer wieder geöffnet und gelesen werden muß ?
' Hier nun mein bisher vergeblicher Versuch. Das Programm läuft, gibt keinen Fehler aus und grinst mich dann mit lauter Nullen in der Ausgabe an.
' Eine Zeile in der vorhandenen Datei sieht z.B. wie folgt aus 2001-10-27, Samstag, 2, 12, 24, 32, 36, 47,, 5
' Da ich nicht weiss ob diese Zeile aus einem Array von 9 oder 11 Teilen besteht und meine Datei auf jedenfall ein Array von 6 Teilen haben soll,
' habe ich ersteinmal 3 Klassen geschrieben.
----------------------------------------------------------------------------------------------------------------
Imports System.IO
Public Class formZiehungen
Public Class gefZahlenreihen
Dim Zz1, Zz2, Zz3, Zz4, Zz5, Zz6, Zz, Sz As Byte
Dim Zz1b, Zz2b, Zz3b, Zz4b, Zz5b, Zz6b As Byte
Sub Create(ByVal aZz1 As Byte, ByVal aZz2 As Byte, ByVal aZz3 As Byte, ByVal aZz4 As Byte, _
ByVal aZz5 As Byte, ByVal aZz6 As Byte)
Zz1 = aZz1
Zz2 = aZz2
Zz3 = aZz3
Zz4 = aZz4
Zz5 = aZz5
Zz6 = aZz6
End Sub
Sub Create(ByVal s As String)
Dim teil() As String
teil = s.Split(";")
Zz1 = teil(0)
Zz2 = teil(1)
Zz3 = teil(2)
Zz4 = teil(3)
Zz5 = teil(4)
Zz6 = teil(5)
End Sub
Function Merge() As String
Merge = Zz1 & ";" & Zz2 & ";" & Zz3 & ";" & Zz4 & ";" & Zz5 & ";" & Zz6
End Function
Overrides Function ToString() As String
ToString = Zz1 & ";" & Zz2 & ";" & Zz3 & ";" & Zz4 & ";" & Zz5 & ";" & Zz6
End Function
End Class
'=======================================================================================================================
'========================================================================================================================
Public Class Ziehungen
Dim Jahr, Monat, Tag, Zz1, Zz2, Zz3, Zz4, Zz5, Zz6, Zz, Sz As Byte
Dim wochentag As String
Sub Create(ByVal aJahr As Byte, ByVal aMonat As Byte, ByVal aTag As Byte, ByVal aWochentag As String, ByVal aZz1 As Byte, ByVal aZz2 As Byte, ByVal aZz3 As Byte, ByVal aZz4 As Byte, _
ByVal aZz5 As Byte, ByVal aZz6 As Byte, ByVal aZz As Byte, ByVal aSz As Byte)
Jahr = aJahr
Monat = aMonat
Tag = aTag
wochentag = aWochentag
Zz1 = aZz1
Zz2 = aZz2
Zz3 = aZz3
Zz4 = aZz4
Zz5 = aZz5
Zz6 = aZz6
Zz = aZz
Sz = aSz
End Sub
Sub Create(ByVal s As String)
Dim teil() As String
teil = s.Split(";")
Jahr = teil(0)
Monat = (1)
Tag = teil(2)
wochentag = teil(3)
Zz1 = teil(4)
Zz2 = teil(5)
Zz3 = teil(6)
Zz4 = teil(7)
Zz5 = teil(8)
Zz6 = teil(9)
Zz = teil(10)
Sz = teil(11)
End Sub
Function Merge() As String
Merge = Jahr & ";" & Monat & Tag & ";" & wochentag & ";" & Zz1 & ";" & Zz2 & ";" & Zz3 & ";" & Zz4 & ";" & Zz5 & ";" & Zz6 & ";" & Zz & ";" & Sz
End Function
Overrides Function ToString() As String
ToString = Jahr & ";" & Monat & Tag & ";" & wochentag & ";" & Zz1 & ";" & Zz2 & ";" & Zz3 & ";" & Zz4 & ";" & Zz5 & ";" & Zz6 & ";" & Zz & ";" & Sz
End Function
End Class
'=======================================================================================================================
'====================================================================================================================
Public Class Ziehungen10
Dim Tag, Zz1, Zz2, Zz3, Zz4, Zz5, Zz6, Zz, Sz As Byte
Dim wochentag As String
Sub Create(ByVal aTag As Byte, ByVal aWochentag As String, ByVal aZz1 As Byte, ByVal aZz2 As Byte, ByVal aZz3 As Byte, ByVal aZz4 As Byte, _
ByVal aZz5 As Byte, ByVal aZz6 As Byte, ByVal aZz As Byte, ByVal aSz As Byte)
Tag = aTag
wochentag = aWochentag
Zz1 = aZz1
Zz2 = aZz2
Zz3 = aZz3
Zz4 = aZz4
Zz5 = aZz5
Zz6 = aZz6
Zz = aZz
Sz = aSz
End Sub
Sub Create(ByVal s As String)
Dim teil() As String
teil = s.Split(";")
Tag = teil(0)
wochentag = teil(1)
Zz1 = teil(2)
Zz2 = teil(3)
Zz3 = teil(4)
Zz4 = teil(5)
Zz5 = teil(6)
Zz6 = teil(7)
Zz = teil(8)
Sz = teil(9)
End Sub
Function Merge() As String
Merge = Tag & ";" & wochentag & ";" & Zz1 & ";" & Zz2 & ";" & Zz3 & ";" & Zz4 & ";" & Zz5 & ";" & Zz6 & ";" & Zz & ";" & Sz
End Function
Overrides Function ToString() As String
ToString = Tag & ";" & wochentag & ";" & Zz1 & ";" & Zz2 & ";" & Zz3 & ";" & Zz4 & ";" & Zz5 & ";" & Zz6 & ";" & Zz & ";" & Sz
End Function
End Class
'=======================================================================================================================
'====================================================================================================================
Private Sub btngefAbr_Click(sender As System.Object, e As System.EventArgs) Handles btngefAbr.Click
Close()
End Sub
Private Sub btnZiehStart_Click(sender As System.Object, e As System.EventArgs) Handles btnZiehStart.Click
Dim p As New Ziehungen
Dim p2 As New gefZahlenreihen
Dim aWochentag As String
Dim aJahr, aMonat, aTag, aZz1, aZz2, aZz3, aZz4, aZz5, aZz6, aZz, aSz As Byte
Dim s, s2 As String
Dim nr As Integer
' s und s2 hab ich auf 0 gesetzt, da sonst die Fehlermeldung kam " Zur laufzeit kann eine Nullverweisausmahme auftreten.
s = 0
s2 = 0
' Ab hier wollt ich die vorhandene Datei einlesen, hab es auch mit der anderen Class versucht
lstA.Items.Clear()
If File.Exists("lot6aus49-2.txt") Then
FileOpen(1, "lot6aus49-2.txt", OpenMode.Random)
nr = 1
Do
Try
FileGetObject(1, s)
p.Create(s)
lstA.Items.Add(nr & ": " &
p.ToString())
nr = nr + 1
Catch ex As Exception
Exit Do
End Try
Loop
FileClose(1)
Else
lstA.Items.Add("Datei nicht vorhanden")
End If
' bei "aWochentag" habe ich wieder die selbe Meldung wie bei s und s2
p.Create(aJahr, aMonat, aTag, aWochentag, aZz1, aZz2, aZz3, aZz4, aZz5, aZz6, aZz, aSz)
' ab hier sollte ein neues Array gebildet und in die Datei geschrieben werden
If File.Exists("data.txt") Then
FileOpen(1, "data.txt", OpenMode.Random)
FilePutObject(1, p2.Merge())
nr = 1
Do
Try
FileGetObject(1, s2)
p2.Create(s2)
lstA.Items.Add(nr & ": " &
p2.ToString())
nr = nr + 1
Catch ex As Exception
Exit Do
End Try
Loop
Else
lstA.Items.Add("Datei nicht vorhanden")
End If
FileClose(1)
' nun wollte ich mir die neugeschriebene Datei zur Konntrolle anzeigen lassen
lstA.Items.Clear()
If File.Exists("data.txt") Then
FileOpen(1, "data.txt", OpenMode.Random)
nr = 1
Do
Try
FileGetObject(1, s2)
p2.Create(s2)
lstA.Items.Add(nr & ": " &
p2.ToString())
nr = nr + 1
Catch ex As Exception
Exit Do
End Try
Loop
FileClose(1)
Else
lstA.Items.Add("Datei nicht vorhanden")
End If
End Sub
End Class
'Ich hoffe ihr könnt mir bissel helfen. Sicher ist mein Denkansatz irgendwie falsch. Jedenfalls stehe ich im Moment ganz schön auf den Schlauch
'und wäre für Hilfe dankbar.
' Ich bin zwar schon etwas älter, aber noch ein Anfänger im programmieren. Ich lerne mit VB 2010 und programmiere nebenher,
' um das was ich lerne auch praktisch anwenden und ausprobieren zu können ein Lottoprogramm. Ein Lottoprogramm, nicht um das Fahrad neu zu erfinden,
' sondern weil ich denke, in Diesem das meiste was ich hier lerne ( von Textausgabe über Grafikausgabe bis zur Datenbank ) auch einbauen zu können.
' So soll das Programm halt immer mitwachsen.
' Nun habe ich aber folgendes Problem. Ich habe eine Textdatei mit allen Ziehungen. Da in dieser Datei stehen aber mehr Informationen als ich brauche,
' deshalb möchte ich nur ein Teil davon in eine eigene Datei schreiben. Dafür könnte ich von euch ein paar "Denkanstöße" gebrauchen. Wie lese ich ein Array
' aus einer Textdatei aus, wenn ich nicht weis wie dieses Array genau zusammengesetzt ist. Und eine zweite Frage in dem Zusammenhang.
' Wenn ich dann meine Datei habe, kann ich diese in den Arbeitsspeicher bzw. Buffer laden, damit sie nicht jedesmal wenn ich etwas dort vergleichen
' möchte immer wieder geöffnet und gelesen werden muß ?
' Hier nun mein bisher vergeblicher Versuch. Das Programm läuft, gibt keinen Fehler aus und grinst mich dann mit lauter Nullen in der Ausgabe an.
' Eine Zeile in der vorhandenen Datei sieht z.B. wie folgt aus 2001-10-27, Samstag, 2, 12, 24, 32, 36, 47,, 5
' Da ich nicht weiss ob diese Zeile aus einem Array von 9 oder 11 Teilen besteht und meine Datei auf jedenfall ein Array von 6 Teilen haben soll,
' habe ich ersteinmal 3 Klassen geschrieben.
----------------------------------------------------------------------------------------------------------------
Imports System.IO
Public Class formZiehungen
Public Class gefZahlenreihen
Dim Zz1, Zz2, Zz3, Zz4, Zz5, Zz6, Zz, Sz As Byte
Dim Zz1b, Zz2b, Zz3b, Zz4b, Zz5b, Zz6b As Byte
Sub Create(ByVal aZz1 As Byte, ByVal aZz2 As Byte, ByVal aZz3 As Byte, ByVal aZz4 As Byte, _
ByVal aZz5 As Byte, ByVal aZz6 As Byte)
Zz1 = aZz1
Zz2 = aZz2
Zz3 = aZz3
Zz4 = aZz4
Zz5 = aZz5
Zz6 = aZz6
End Sub
Sub Create(ByVal s As String)
Dim teil() As String
teil = s.Split(";")
Zz1 = teil(0)
Zz2 = teil(1)
Zz3 = teil(2)
Zz4 = teil(3)
Zz5 = teil(4)
Zz6 = teil(5)
End Sub
Function Merge() As String
Merge = Zz1 & ";" & Zz2 & ";" & Zz3 & ";" & Zz4 & ";" & Zz5 & ";" & Zz6
End Function
Overrides Function ToString() As String
ToString = Zz1 & ";" & Zz2 & ";" & Zz3 & ";" & Zz4 & ";" & Zz5 & ";" & Zz6
End Function
End Class
'=======================================================================================================================
'========================================================================================================================
Public Class Ziehungen
Dim Jahr, Monat, Tag, Zz1, Zz2, Zz3, Zz4, Zz5, Zz6, Zz, Sz As Byte
Dim wochentag As String
Sub Create(ByVal aJahr As Byte, ByVal aMonat As Byte, ByVal aTag As Byte, ByVal aWochentag As String, ByVal aZz1 As Byte, ByVal aZz2 As Byte, ByVal aZz3 As Byte, ByVal aZz4 As Byte, _
ByVal aZz5 As Byte, ByVal aZz6 As Byte, ByVal aZz As Byte, ByVal aSz As Byte)
Jahr = aJahr
Monat = aMonat
Tag = aTag
wochentag = aWochentag
Zz1 = aZz1
Zz2 = aZz2
Zz3 = aZz3
Zz4 = aZz4
Zz5 = aZz5
Zz6 = aZz6
Zz = aZz
Sz = aSz
End Sub
Sub Create(ByVal s As String)
Dim teil() As String
teil = s.Split(";")
Jahr = teil(0)
Monat = (1)
Tag = teil(2)
wochentag = teil(3)
Zz1 = teil(4)
Zz2 = teil(5)
Zz3 = teil(6)
Zz4 = teil(7)
Zz5 = teil(8)
Zz6 = teil(9)
Zz = teil(10)
Sz = teil(11)
End Sub
Function Merge() As String
Merge = Jahr & ";" & Monat & Tag & ";" & wochentag & ";" & Zz1 & ";" & Zz2 & ";" & Zz3 & ";" & Zz4 & ";" & Zz5 & ";" & Zz6 & ";" & Zz & ";" & Sz
End Function
Overrides Function ToString() As String
ToString = Jahr & ";" & Monat & Tag & ";" & wochentag & ";" & Zz1 & ";" & Zz2 & ";" & Zz3 & ";" & Zz4 & ";" & Zz5 & ";" & Zz6 & ";" & Zz & ";" & Sz
End Function
End Class
'=======================================================================================================================
'====================================================================================================================
Public Class Ziehungen10
Dim Tag, Zz1, Zz2, Zz3, Zz4, Zz5, Zz6, Zz, Sz As Byte
Dim wochentag As String
Sub Create(ByVal aTag As Byte, ByVal aWochentag As String, ByVal aZz1 As Byte, ByVal aZz2 As Byte, ByVal aZz3 As Byte, ByVal aZz4 As Byte, _
ByVal aZz5 As Byte, ByVal aZz6 As Byte, ByVal aZz As Byte, ByVal aSz As Byte)
Tag = aTag
wochentag = aWochentag
Zz1 = aZz1
Zz2 = aZz2
Zz3 = aZz3
Zz4 = aZz4
Zz5 = aZz5
Zz6 = aZz6
Zz = aZz
Sz = aSz
End Sub
Sub Create(ByVal s As String)
Dim teil() As String
teil = s.Split(";")
Tag = teil(0)
wochentag = teil(1)
Zz1 = teil(2)
Zz2 = teil(3)
Zz3 = teil(4)
Zz4 = teil(5)
Zz5 = teil(6)
Zz6 = teil(7)
Zz = teil(8)
Sz = teil(9)
End Sub
Function Merge() As String
Merge = Tag & ";" & wochentag & ";" & Zz1 & ";" & Zz2 & ";" & Zz3 & ";" & Zz4 & ";" & Zz5 & ";" & Zz6 & ";" & Zz & ";" & Sz
End Function
Overrides Function ToString() As String
ToString = Tag & ";" & wochentag & ";" & Zz1 & ";" & Zz2 & ";" & Zz3 & ";" & Zz4 & ";" & Zz5 & ";" & Zz6 & ";" & Zz & ";" & Sz
End Function
End Class
'=======================================================================================================================
'====================================================================================================================
Private Sub btngefAbr_Click(sender As System.Object, e As System.EventArgs) Handles btngefAbr.Click
Close()
End Sub
Private Sub btnZiehStart_Click(sender As System.Object, e As System.EventArgs) Handles btnZiehStart.Click
Dim p As New Ziehungen
Dim p2 As New gefZahlenreihen
Dim aWochentag As String
Dim aJahr, aMonat, aTag, aZz1, aZz2, aZz3, aZz4, aZz5, aZz6, aZz, aSz As Byte
Dim s, s2 As String
Dim nr As Integer
' s und s2 hab ich auf 0 gesetzt, da sonst die Fehlermeldung kam " Zur laufzeit kann eine Nullverweisausmahme auftreten.
s = 0
s2 = 0
' Ab hier wollt ich die vorhandene Datei einlesen, hab es auch mit der anderen Class versucht
lstA.Items.Clear()
If File.Exists("lot6aus49-2.txt") Then
FileOpen(1, "lot6aus49-2.txt", OpenMode.Random)
nr = 1
Do
Try
FileGetObject(1, s)
p.Create(s)
lstA.Items.Add(nr & ": " &
p.ToString())
nr = nr + 1
Catch ex As Exception
Exit Do
End Try
Loop
FileClose(1)
Else
lstA.Items.Add("Datei nicht vorhanden")
End If
' bei "aWochentag" habe ich wieder die selbe Meldung wie bei s und s2
p.Create(aJahr, aMonat, aTag, aWochentag, aZz1, aZz2, aZz3, aZz4, aZz5, aZz6, aZz, aSz)
' ab hier sollte ein neues Array gebildet und in die Datei geschrieben werden
If File.Exists("data.txt") Then
FileOpen(1, "data.txt", OpenMode.Random)
FilePutObject(1, p2.Merge())
nr = 1
Do
Try
FileGetObject(1, s2)
p2.Create(s2)
lstA.Items.Add(nr & ": " &
p2.ToString())
nr = nr + 1
Catch ex As Exception
Exit Do
End Try
Loop
Else
lstA.Items.Add("Datei nicht vorhanden")
End If
FileClose(1)
' nun wollte ich mir die neugeschriebene Datei zur Konntrolle anzeigen lassen
lstA.Items.Clear()
If File.Exists("data.txt") Then
FileOpen(1, "data.txt", OpenMode.Random)
nr = 1
Do
Try
FileGetObject(1, s2)
p2.Create(s2)
lstA.Items.Add(nr & ": " &
p2.ToString())
nr = nr + 1
Catch ex As Exception
Exit Do
End Try
Loop
FileClose(1)
Else
lstA.Items.Add("Datei nicht vorhanden")
End If
End Sub
End Class
'Ich hoffe ihr könnt mir bissel helfen. Sicher ist mein Denkansatz irgendwie falsch. Jedenfalls stehe ich im Moment ganz schön auf den Schlauch
'und wäre für Hilfe dankbar.