Beispiel: Treeview als Datei- / Verzeichnisexplorer

Questions regarding syntax

Beispiel: Treeview als Datei- / Verzeichnisexplorer

Postby ulscharte » Sun Oct 24, 2010 12:11 pm

;) Hallo,

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 :) finde.

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
ulscharte
 
Posts: 1
Joined: Sun Oct 24, 2010 11:14 am

Re: Beispiel: Treeview als Datei- / Verzeichnisexplorer

Postby berndnoetscher » Mon Oct 25, 2010 7:37 am

Hallo ulscharte,

willkommen an Bord.

Bitte posten in Zukunft im deutschen Forum, damit andere deutschsprachige dir besser helfen können. Danke. :-)
KBasic müsste in allen Punkten die Anforderungen erfüllen. Sollte es bei den API-Aufrufen Probleme geben, werde ich diese korrigieren.
Es gibt ein paar Beispiele innerhalb KBasic, die Verzeichnisse auslesen und andere, die TreeViews verwenden. Dokumentation für dich:

http://www.kbasic.com/doku.php?id=dir
http://www.kbasic.com/doku.php?id=file

für den Dateizugriff gibt es auch noch die von VB6-bekannten.


http://www.kbasic.com/doku.php?id=treeview

http://www.kbasic.com/doku.php?id=treev ... temclicked
http://www.kbasic.com/doku.php?id=treev ... bleclicked

etc. wobei onitemclicked auch ausgelöst wird von Qt wenn onitemdoubleclicked ausgelöst wird laut Qt doku.


MfG
Bernd
berndnoetscher
Site Admin
 
Posts: 1059
Joined: Tue Sep 25, 2007 9:37 am

Re: Beispiel: Treeview als Datei- / Verzeichnisexplorer

Postby reiner » Mon Oct 25, 2010 10:39 am

Wo finde ich info ueber DeleteTreeViewItem, bei mir kommt syntax error.
reiner
 
Posts: 34
Joined: Tue Jul 28, 2009 7:26 am

Re: Beispiel: Treeview als Datei- / Verzeichnisexplorer

Postby reiner » Mon Oct 25, 2010 10:39 am

Wo finde ich info ueber DeleteTreeViewItem, bei mir kommt syntax error.
reiner
 
Posts: 34
Joined: Tue Jul 28, 2009 7:26 am

Re: Beispiel: Treeview als Datei- / Verzeichnisexplorer

Postby pappawinni » Mon Oct 25, 2010 7:48 pm

Pappa makes everything what otherwise none likes :)
pappawinni
 
Posts: 192
Joined: Tue Jan 19, 2010 11:27 pm
Location: Germany


Return to Coding Questions

cron