| Input, Output, Append, FreeFile, KanalNummer, Close |
| |
| |
| Const max% = 10 | Array mit zehn Feldern deklarieren. |
| |
| Private 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 | |
| |
| Private liste(1 To max) As TPerson | Definieren der Strukturvariablen. |
| Private pos% | |
| |
| Private Sub SpeichernInDatei_Click() | Speichern in Datei. |
| Dim knr%, index%, raus$ | |
| knr = FreeFile | Die "FreeFile"-Funktion ermittelt die nächste freie |
| index = 1 | Kanalnummer (File number). |
| dialog1.ShowOpen | CommonDialog aufrufen. |
| Open dialog1.FileName For Output As #knr | TextDatei wird für sequentiellen Schreibzugriff geöffnet. |
| |
| For index = 1 To max | |
| raus = liste(index).intnr & "," & liste(index).strbild & "," & liste(index).strname _ |
| & "," & liste(index).strtel & "," & liste(index).strvorname | |
| Call speichern | |
| Print #knr, raus | Der String wird in eine Textdatei geschrieben. |
| Next index | |
| Close #knr | Textdatei schließen. Die Kanalnummer wird freigegeben. |
| End Sub | |
| |
| Private Sub cmdLesenAusDatei_Click() | Lesen aus Datei. |
| Dim knr%, index% | |
| Dim t1$, t2$, t3$, t4$, t5$ | |
| knr = FreeFile | Die "FreeFile"-Funktion ermittelt die nächste freie |
| index = 1 | Kanalnummer (File number). |
| |
| dialog1.ShowOpen | CommonDialog aufrufen. |
| Open dialog1.FileName For Input As #knr | TextDatei wird für sequentiellen Lesezugriff geöffnet. |
| |
| While Not EOF(knr) | |
| Input #knr, t1, t2, t3, t4, t5 | Zeichenketten werden gelesen. |
| |
| liste(index).intnr = t1 | Daten in den Hauptspeicher lesen; anschließend werden |
| liste(index).strbild = t2 | die Werte in die ComboBox geschrieben. |
| liste(index).strname = t3 | |
| liste(index).strtel = t4 | |
| liste(index).strvorname = t5 | |
| | |
| cboName.AddItem liste(index).strname | ComboBox wird geladen. |
| index = index + 1 | |
| Wend | |
| Close #knr | Textdatei schließen. Die Kanalnummer wird freigegeben. |
| Call anzeigen | |
| End Sub | |
| |
| Private Sub Form_Load() | |
| pos = 1 | |
| imgfoto.Stretch = True | |
| With frmadr | |
| .Height = 3000 | |
| .Width = 3700 | |
| End With | |
| End Sub | |
| |
| Private Sub anzeigen() | Array füllt Werte in die Textboxen. |
| cboName = liste(pos).strname | |
| txtnr = Str$(pos) | |
| txtvorname = liste(pos).strvorname | |
| txttel = liste(pos).strtel | |
| imgfoto.Picture = LoadPicture(liste(pos).strbild) | |
| End Sub | |
| |
| Private Sub speichern() | Speichert Änderungen ins Array. |
| liste(pos).intnr = Val(txtnr.Text) | |
| liste(pos).strname = cboName.Text | |
| liste(pos).strvorname = txtvorname.Text | |
| liste(pos).strtel = txttel.Text | |
| End Sub | |
| |
| Private Sub suchen(ByVal strsu As String) | Prozedur "suchen". |
| Dim index As Integer | |
| Dim counter As Integer | |
| Dim gefunden(10) As TPerson | |
| Dim straus As String | |
| | |
| counter = 0 | |
| index = 1 | |
| | |
| Call speichern | |
| | |
| While index <= max | |
| If LCase(strsu) Like LCase(liste(index).strname) Or _ | LCase wandelt alle Buchstaben in Kleinbuchstaben um. |
| LCase(strsu) Like LCase(liste(index).strvorname) Then | |
| counter = counter + 1 | |
| gefunden(counter) = liste(index) | |
| index = index + 1 | |
| End If | |
| index = index + 1 | |
| Wend | |
| | |
| If counter <> 0 Then | |
| For index = 1 To counter | Ausgabe der gefundenen Strings in einer MsgBox. |
| 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 | |
| |
| Private Sub imgfoto_Click() | |
| dialog1.ShowOpen | |
| imgfoto.Picture = LoadPicture(dialog1.FileName) | |
| liste(pos).strbild = dialog1.FileName | |
| Call speichern | |
| End Sub | |
| |
| Private Sub cboName_Click() | |
| pos = cboName.ListIndex + 1 | |
| Call anzeigen | |
| End Sub | |
| |
| Private Sub cmdErweitert_Click() | Formular vergrößern (mit Bild und CommandButtons |
| With frmadr | zum Öffnen einer Datei). |
| .Height = 4500 | |
| .Width = 7000 | |
| End With | |
| End Sub | |
| |
| Private Sub cmdRueck_Click() | Zurückblättern im Array. |
| If pos < max Then | |
| Call speichern | |
| pos = pos + 1 | |
| Call anzeigen | |
| Else | |
| MsgBox "Sie befinden sich am Ende", vbInformation, "Info" | |
| End If | |
| End Sub | |
| |
| Private Sub cmdSuch_Click() | Suchprogramm starten. |
| Dim strvergleich As String | |
| strvergleich = txtsuch.Text | Text in TextBox. |
| Call suchen(strvergleich) | Prozedur "suchen" aufrufen. |
| End Sub | |
| |
| Private Sub cmdVor_Click() | Vorblättern im Array. |
| If pos > 1 Then | |
| Call speichern | |
| pos = pos - 1 | |
| Call anzeigen | |
| Else | |
| MsgBox "Sie befinden sich am Anfang", vbInformation, "Info" | |
| End If | |
| End Sub | |
| |
| Private Sub cmdWeniger_Click() | Formular verkleinern (ohne Bild). |
| With frmadr | |
| .Height = 3000 | |
| .Width = 3700 | |
| End With | |
| End Sub | |
| |
| |
| |
| |
| |
|
|
|
|
| . |
| |