
habe mir heute KBasic als Ersatz für mein altes VB6 Enterprise installiert und meine ersten Gehversuche gemacht.
Ausserdem gleich die Proffessionellversion bestellt, da ich ich KBasic wirklich gut

Bin aber kein Basic-Anfänger. Schreibe seit einigen Jahren für unsere Fa. hauptsächlich VBA-Programme unter MS-Access 2007 und 2010
für die Prüfung elektronischer Baugruppen und deren Doku.
Nun meine Frage:
1. Ich will ein Verzeichnis komplett in ein Treeview einlesen. (Normal kein Problem.
2. In diesen Verzeichnisse stehen Dateien mit einer ovl-Endung die wie INI-Dateien aufgebaut sind. Desweiteren jeweils eine bmp-Bilddatei.
3. Aus diesen OVL-Dateien will ich die Struktur einlesen
Beispiel: Dateiname => CB3050_4_LS => Prüfplannummer der Baugruppenhauptgruppe
In der Datei z.B.: [0471122] => Baugruppenvariante
AOI-Blank:1 = P1200_1 => abgeschaltete Prüfpunkte
AOI-Blank:2 = P1200_2
AOI-Blank:3 = U160
[0471123] => Nächste Baugruppenvariante in dieser Hauptgruppe
AOI-Blank:1 = P1200_1 => abgeschaltete Prüfpunkte
AOI-Blank:2 = P1200_2
AOI-Blank:3 = U160.
AOI-Blank:4 = P1200_1
AOI-Blank:5 = P1200_2
AOI-Blank:6 = U160
usw.
Der Tree soll folgendes tun:
- Bei Click auf Angabe den Infotext zu zur Baugruppenhauptgruppe anzeigen
- Bei Doppelclick auf Angabe die Bmp-Datei zur Baugruppenhauptgruppe anzeigen
- Bei Klick in den Tree müssen die zugehörigen Baugruppenvarianten angezeigt werden
- Bei Click auf die Varante müssen die abgeschalteten Prüfpunkte angezeigt werden
Desweiteren soll zu jeder Variante und Gruppe ein fortlaufende Textdatei als quasi Logbuch führbar sein.
(Einfach entsprechend über z.B. Wordpad o.ä.)
Gibt es schon ein ähnliches Beispiel? Hat jemand schon mal einen Dateiexplorer mit KBasic gebaut?
Ich habe mit den Tree-Beipielen schon mal rumgespielt. Müsste eigentlich schon gut gehen. Einlesen eines Pfades hat geklappt.
Kann ich die gleichen APi-Aufrufe zum Lesen von INI-Dateien wie in VBA benutzen?
Beispiel aus meinen VBA-Programmen:
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias _
"GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String) As Long
Public Sub INI_Read()
'Wrapper-Funktion
'INI-Datei lesen
Dim sINIPath As String
Dim sResult As String
Dim sError As String
Dim INI_Err As Boolean
Dim INITitel As String
Dim Mld As String
Dim Pos As Integer
'Pfad zum Programmverzeichnis ermitteln 'Windows-Ordner ermitteln
sINIPath = CurrentProject.Path 'API_GetWindowsDir()
'Backslash prüfen und ggf. hinzufügen
If Right$(sINIPath, 1) <> "\" Then sINIPath = sINIPath & "\"
'Unseren INI-Dateinamen anfügen
sINIPath = sINIPath & "Q-Datencenter.ini"
PrgTitel = Trim$(PrgTitel)
INITitel = "Einstellungsfehler in der INI-Datei! " & PrgTitel
'[Programm]
'Name = Q - Datencenter
'Titel des Programms einlesen
'Angabe der Kunden-Importdatei lesen
If GetMySetting(sINIPath, "Programm", "Name", sResult, sError) Then
PrgTitel = "- " & sResult & " -"
Else
Call MsgBox("Bitte den Programmtitel in der Ini-Datei angeben / prüfen!", 64, INITitel)
End If
Public Function GetMySetting(ByVal sIniFilePath As String, _
ByVal sSection As String, _
ByVal sKey As String, _
ByRef sResult As String, _
ByRef sError As String) As Boolean
Dim lResult As Long 'API-Rückgabewert
Dim lLength As Long 'Dateilänge der INI-Datei
Dim sBuffer As String 'String für den Rückgabewert
'Rückgabestring initialisieren
sResult = vbNullString
'Fehlerhandling einschalten, falls es die Datei nicht gibt
On Error Resume Next
'Dateilänge ermitteln
lLength = FileLen(sIniFilePath)
'Länge (und Fehler) auswerten
If lLength = 0 Or Err.Number <> 0 Then Exit Function
'Fehlerhandling wieder ausschalten
On Error GoTo 0
'Rückgabestring dimensionieren
sBuffer = Space(lLength)
'API-Funktion ausführen
lResult = GetPrivateProfileString(sSection, sKey, vbNullString, _
sBuffer, Len(sBuffer), sIniFilePath)
'Resultat auswerten
If lResult > 0 Then
'Rückgabewert "extrahieren"
sResult = Left$(sBuffer, lResult)
'Funktionsrückgabewert setzen
GetMySetting = True
End If
End Function
'Verzeichnisangabe (Hauptverzeichnis) für Projekte und WAK-Berichte
WA_Projektpfad = vbNullString
'Grundeinstellung / Voreinstellung für die Dateispeicherung
'Berichtsdatei - Kennzeichnung fehlerhafter Einheiten -
If GetMySetting(sINIPath, "Programm", "WA_Projektpfad", sResult, sError) Then
If InStr(sResult, "\") > 0 Then
WA_Projektpfad = sResult
Else
'Ursprungeinstellung (wegen Abwärtskompatibilität)
WA_Projektpfad = CurrentProject.Path & "\Anlagen\Warenausgang"
End If
Else
'Ursprungeinstellung (wegen Abwärtskompatibilität)
WA_Projektpfad = CurrentProject.Path & "\Anlagen\Warenausgang"
End If
Würde mich über Rückinformationen freuen. Gern gebe ich auch gern Basic- und VBA-Tips