| Set, Input, Output, Append, FreeFile, KanalNummer, Close |
| |
| |
| Prozeduren im Formular | |
| Private Sub Form_Load() | Laden des Formulars. |
| pos = 1 | Position des Arrays = 1. |
| imgfoto.Stretch = True | |
| With frmadr | Formulargröße mit Minimalwerten. |
| .Height = 3000 | |
| .Width = 3700 | |
| End With | |
| End Sub | |
| |
| Private Sub cmdLesenAusDatei_Click() | |
| Dim index% | |
| Dim leseklasse As CLesen | Klasse für Lesevorgänge. |
| Set leseklasse = New CLesen | |
| Call leseklasse.liesmich(index) | |
| Call anzeigen | |
| End Sub | |
| |
| Private Sub SpeichernInDatei_Click() | |
| Dim index% | |
| Dim klasse As CSpeichern | Klasse für Speichervorgänge. |
| Set klasse = New CSpeichern | |
| Call klasse.speichern(index) | |
| Call save | |
| End Sub | |
| |
| Private Sub cmdsuch_Click() | |
| Dim strvergleich As String | |
| Dim index% | |
| Dim suchklasse As CSuchen | Klasse für Suchvorgänge. |
| Set suchklasse = New CSuchen | |
| strvergleich = txtsuch.Text | |
| Call suchklasse.suchen(strvergleich) | |
| End Sub | |
|
| Private Sub imgfoto_Click() |
| dialog1.ShowOpen |
| imgfoto.Picture = LoadPicture(dialog1.FileName) |
| liste(pos).strbild = dialog1.FileName |
| Call save |
| End Sub |
|
| Private Sub cboName_Click() |
| pos = cboName.ListIndex + 1 |
| Call anzeigen |
| End Sub | |
| |
| Private Sub cmderweitert_Click() | |
| With frmadr | |
| .Height = 4500 | |
| .Width = 7000 | |
| End With | |
| End Sub | |
| |
| Private Sub cmdLaden_Click() | |
| cmdLaden.Visible = False | |
| End Sub | |
| |
| Private Sub cmdrueck_Click() | |
| If pos < max Then | |
| Call save | |
| pos = pos + 1 | |
| Call anzeigen | |
| Else | |
| MsgBox "Dateiende", vbInformation, "Info" | |
| End If | |
| End Sub | |
| |
| Private Sub cmdvor_Click() | |
| If pos > 1 Then | |
| Call save | |
| pos = pos - 1 | |
| Call anzeigen | |
| Else | |
| MsgBox "Dateianfang", vbInformation, "Info" | |
| End If | |
| End Sub | |
| |
| Private Sub cmdweniger_Click() | |
| With frmadr | |
| .Height = 3000 | |
| .Width = 3700 | |
| End With | |
| End Sub | |
| |
| Prozeduren im Modul_1 | |
| Public Const max% = 10 | Array mit zehn Feldern. |
| |
| Public Type TPerson | Nutzerdefinierter Datentyp. |
| intnr As Integer | Zähler (Kundennummer). |
| strname As String | Nachname. |
| strvorname As String | Vorname. |
| strtel As String | Telefonnummer. |
| strbild As String | Bild, Photo... |
| End Type | |
| |
| Public liste(1 To max) As TPerson | Definieren der Strukturvariablen. |
| Public pos% | |
| |
| Public Sub save() | Speichert Änderungen im Array. |
| liste(pos).intnr = Val(frmadr.txtnr.Text) | |
| liste(pos).strname = frmadr.cboName.Text | |
| liste(pos).strvorname = frmadr.txtvorname.Text | |
| liste(pos).strtel = frmadr.txttel.Text | |
| End Sub | |
| |
| Public Sub anzeigen() | Array füllt Werte in die TextBox. |
| frmadr.txtnr = Str$(pos) | |
| frmadr.cboName = liste(pos).strname | |
| frmadr.txtvorname = liste(pos).strvorname | |
| frmadr.txttel = liste(pos).strtel | |
| frmadr.imgfoto.Picture = LoadPicture(liste(pos).strbild) | |
| End Sub | |
| |
| Prozeduren im Klassenmodul CLesen | |
| Public Sub liesmich(ByVal lies As Variant) | Lesen aus Datei. |
| Dim knr%, index% | |
| Dim t1$, t2$, t3$, t4$, t5$ | |
| Die "FreeFile"-Funktion ermittelt die nächste freie |
| knr = FreeFile | Kanalnummer (File number). |
| index = 1 | |
| frmadr.dialog1.ShowOpen | CommonDialog aufrufen. |
| Open frmadr.dialog1.FileName For Input As #knr | Öffnet Textdatei für sequentiellen Lesezugriff. |
| While Not EOF(knr) | |
| Input #knr, t1, t2, t3, t4, t5 | |
| liste(index).intnr = t1 | Von der Datei in den Hauptspeicher lesen, um |
| liste(index).strbild = t2 | anschließend in die ComboBox zu schreiben. |
| liste(index).strname = t3 | |
| liste(index).strtel = t4 | |
| liste(index).strvorname = t5 | |
| frmadr.cboName.AddItem liste(index).strname | Laden der ComboBox. |
| index = index + 1 | |
| Wend | |
| Close #knr | Textdatei schließen. Die Kanalnummer wird freigegeben. |
| End Sub | |
| |
| Prozeduren im Klassenmodul CSpeichern | |
| Public Sub speichern(ByVal speich As Variant) | Speichern in Datei. |
| Dim knr%, index%, raus$ | |
| knr = FreeFile | Die "FreeFile"-Funktion ermittelt die nächste freie |
| index = 1 | Kanalnummer (File number). |
| On Error Resume Next | |
| frmadr.dialog1.ShowOpen | CommonDialog aufrufen. |
| Open frmadr.dialog1.FileName For Output As #knr | Öffnet Textdatei für sequentiellen Schreibzugriff. |
| For index = 1 To max | |
| raus = liste(index).intnr & "," & liste(index).strbild & "," & liste(index).strname _ |
| & "," & liste(index).strtel & "," & liste(index).strvorname | |
| Print #knr, raus | String wird in Textdatei geschrieben. |
| Next index | |
| Close #knr | Textdatei schließen. Die Kanalnummer wird freigegeben. |
| End Sub | |
| |
| Prozeduren im Klassenmodul CSuchen | |
| Public Sub suchen(ByVal strsu As String) | Suchen in Datei. |
| Dim index As Integer | |
| Dim counter As Integer | |
| Dim gefunden(10) As TPerson | |
| Dim straus As String | |
| counter = 0 | |
| index = 1 | |
| Call save | |
| While index <= max | |
| If LCase(strsu) Like LCase(liste(index).strname) Or LCase(strsu) Like LCase(liste(index).strvorname) Then |
| counter = counter + 1 | |
| gefunden(counter) = liste(index) | |
| index = index + 1 |
| Else |
| index = index + 1 |
| End If |
| Wend | |
| If counter <> 0 Then | Ausgabe des gesuchten Strings in einer MsgBox. |
| For index = 1 To counter | |
| straus = straus & gefunden(index).strname & " " & gefunden(index).strvorname & " " & _ |
| gefunden(index).strtel & " " & vbCrLf | |
| Next index | |
| MsgBox straus, vbInformation, "Suche" | |
| Else | |
| MsgBox "Der Name wurde nicht gefunden", vbInformation, "Suche" |
| End If | |
| End Sub | |
| |