|
| |

Visual-Basic Einsteiger| Teil 1: Done. | |  | | Autor: unbekannt | | Datum: 12.01.02 16:05 |
| Hi Atlan,
mal ein Ansatz:
1. Trick:
Wir fassen alle Textfelder des Formulars, die die Daten enthalten zu einem Steuerelementefeld zusammen. Txt(0)
2. Trick:
Wir fassen alle Datenfelder in einen Datensatz zusammen, in eine UDT oder benutzerdefinierten Datentyp:
Private Type Adr
SatzNummer As Variant
Name As String * 75
Vorname As String * 50
Strasse As String * 75
PLZ As String * 10
Wohnort As String * 75
Land As String * 50
Telefon_P As String * 15
Telefon_G As String * 15
Handy As String * 15
Fax As String * 15
MailAddresse As String * 125
HomePage As String * 255
Sonstiges As String * 255
Bemerkungen As String * 255
Formular As String * 10
' ...................... 1295 Bytes
End Type
Private Addressen As Adr 3. Trick:
Wir merken uns beim Speichern, wohin das einzelne Datenfeld des Datensatzes gehört, und zwar so:
Private Sub SaveAll(oTxt() As TextBox)
Dim F As Byte
Dim DSNr As Long
Dim i As Integer
For i = 0 To UBound(oTxt)
With Addressen
Select Case i
Case 0
.SatzNummer = oTxt(i).Text & ";0;"
Case 1
.Name = oTxt(i).Text & ";1;"
Case 2
.Vorname = oTxt(i).Text & ";2;"
Case 3
.Strasse = oTxt(i).Text & ";3;"
Case 4
.PLZ = oTxt(i).Text & ";4;"
Case 5
.Wohnort = oTxt(i).Text & ";5;"
Case 6
.Land = oTxt(i).Text & ";6;"
Case 7
.Telefon_P = oTxt(i).Text & ";7;"
Case 8
.Telefon_G = oTxt(i).Text & ";8;"
Case 9
.Handy = oTxt(i).Text & ";9;"
Case 10
.Fax = oTxt(i).Text & ";10;"
Case 11
.MailAddresse = oTxt(i).Text & ";11;"
Case 12
.HomePage = oTxt(i).Text & ";12;"
Case 13
.Sonstiges = oTxt(i).Text & ";13;"
Case 14
.Bemerkungen = oTxt(i).Text & ";14;"
Case 15
.Formular = oTxt(i).Text & ";15"
End Select
End With
Next
F = FreeFile()
On Error GoTo FileError
Open "Adressen.TXT" For Random As #F Len = Len(Adr)
On Error GoTo 0
'Anzahl Datensätze ermitteln:
If LOF(F) > 1 Then
DSNr = (LOF(F) / Len(Adr))+ 1
Else
DSNr = 1
End If
If oTxt(0).Text <> "" Then DSNr = Val(oTxt(0).Text)
'Datensatz speichern
Put #F, DSNr, Addressen
Close #F
Exit Sub
FileError:
MsgBox "Die Adressdatei konnte nicht gefunden oder geöffnet werden!", _
vbExclamation, "Dateifehler"
End Sub Zugegeben, die Speicherung ist wegen der UDT etwas umfangreicher, aber die Kürze erfolgt im Laden und Suchen Ist aber nur, weil wir ja irgendwann der
UDT endlich die Daten zuweisen müssen - es soll nicht wieder vorkommen!
4. Trick
Weil wir in Trick 3 so "fleißig" waren, werden wir für die Mühe auch belohnt. Aber noch nicht so ganz,ein winziges Toolchen wird noch benötigt:
Etwas WinAPI,
Private Declare Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" _
(lpvDest As Any, _
lpvSource As Any, _
Byval cbCopy As Long)
Private Function ConvertUDT(oUDT As Adr) As String
Dim s As String
s = Space(Len(Addressen))
CopyMem Byval s, oUDT, Len(Addressen)
ConvertUDT = s
End Function 5. Trick:
Weil wir noch "fleißiger" waren, jetzt der Clou:
Private Sub LoadDS(Byval sNr As Long, oTxt() As TextBox)
Dim vErg As Variant
Dim F As Byte
Dim n As Integer
Dim i As Long
Dim S As String
F = FreeFile()
On Error Goto FileError
Open "Adressen.TXT" For Random As #F Len = Len(Addressen)
On Error Goto 0
Get #F,sNr,Addressen
Close #F
S = ConvertUDT(Addressen)
vErg = Split(s,";") 'na Trickreich was :-)
For i = 0 To UBound(vErg) Step 2
oTxt(n) = Trim(vErg(i))
n = n + 1
Next
Exit Sub
FileError:
MsgBox "Fehler beim Öffnen der Datei.",vbExclamation,"Dateifehler"
End Sub cu
Lordchen |  |
 Text einlesen 2 | 93 | Atlan | 12.01.02 00:43 |   Na, da wollen wir Dich vor einem schweren Designfehler schüt... | 239 | unbekannt | 12.01.02 12:35 |   Teil 1: Done. | 245 | unbekannt | 12.01.02 16:05 |    Re: Teil 2: Done. | 235 | unbekannt | 12.01.02 16:35 |     Re: Teil 3: Done. | 251 | unbekannt | 12.01.02 16:45 |      Re: Teil 4: Done. | 216 | unbekannt | 12.01.02 17:28 |       Das war's mal, aber: | 224 | unbekannt | 12.01.02 17:36 |   Re: Das war's mal, aber: | 37 | Atlan | 12.01.02 21:27 |    Wieso, das ist doch keine Datenbank? Naja, ich fasse es mal ... | 261 | unbekannt | 12.01.02 21:35 |   Re: Wieso, das ist doch keine Datenbank? Naja, ich fasse es ... | 72 | Atlan | 13.01.02 00:10 |    Re: Wieso, das ist doch keine Datenbank? Naja, ich fasse es ... | 239 | unbekannt | 13.01.02 00:23 |   Re: Wieso, das ist doch keine Datenbank? Naja, ich fasse es ... | 68 | Atlan | 13.01.02 01:46 |    Re: Wieso, das ist doch keine Datenbank? Naja, ich fasse es ... | 214 | unbekannt | 13.01.02 01:48 |     Komplett und funkt  | 345 | unbekannt | 13.01.02 15:03 |      Re: Komplett und funkt  | 48 | Atlan | 13.01.02 16:07 |       Na, löschen wir mal ... | 432 | unbekannt | 13.01.02 18:11 |        Re: Na, löschen wir mal ... | 42 | Atlan | 13.01.02 18:36 |         Re: Na, löschen wir mal ... | 284 | unbekannt | 13.01.02 19:11 |          Re: Na, löschen wir mal ... | 38 | Atlan | 13.01.02 20:09 |           Re: Na, löschen wir mal ... | 240 | unbekannt | 13.01.02 20:15 |            Re: Na, löschen wir mal ... | 58 | Atlan | 13.01.02 21:10 |             Re: Na, löschen wir mal ... | 252 | unbekannt | 14.01.02 00:22 |              Re: Na, löschen wir mal ... | 44 | Atlan | 14.01.02 23:37 |               Re: Na, löschen wir mal ... | 35 | Atlan | 16.01.02 09:56 |                Re: Na, löschen wir mal ... | 43 | Atlan | 16.01.02 19:59 |                 Hi ... Hi .... | 439 | unbekannt | 16.01.02 20:06 |                  Re: Hi ... Hi .... | 46 | Atlan | 16.01.02 21:50 |                   So isses ... fast ... Good work! (oT) | 240 | unbekannt | 16.01.02 21:55 |                    Naja, wenn einige bei Snake so mitgedacht hätten ... uiii | 361 | unbekannt | 16.01.02 22:11 |                     Re: Naja, wenn einige bei Snake so mitgedacht hätten ... uii... | 44 | Atlan | 17.01.02 10:56 |                      Hi Lordchen | 37 | Atlan | 20.01.02 11:29 |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Neu! sevCoolbar 3.0 
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere Infos
|