DB-Länge mit libnodave

Rosti

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo alle zusammen !

ich bin ein anfänger im umgang mit libnodave, also bitte ich euch um einbisschen gedult fals ich euch nicht gleich verstehe !

ich benutze libnodave in Java und suche eine funktion um die DB länge auszulesen !

ich bitte um zahlreiche ideen und beiträge mir zu helfen !

danke im vorraus

mfg
Rosti
 
Ich nutze zwar Delphi aber die Funktion sollte es in Java auch geben:

Code:
daveGetBlockInfo(DaveConn, @Info, daveBlockType_DB, DB);

Als Rückgabewert bekommst du die DB-Größe in Byte.
 
ich habe jetzt alles durchsucht und diesefunktion leider nicht gefunden !

hat sonst jemand noch eine hilfreiche idee
Es kann richtig sein, da- der Funktionsumfang der JAVA-Version geringer ist.
Wenn du die Funktion unbedingt brauchst, kannst du dir die entsprechende Funktion im C-Quellcode ansehen und in JAVA entsprechend programmieren. Wenn dir das zu schwierig scheint, kannst du mir auch eine PN schicken.
 
DB-Länge auch für VB.NET

Hi alle zusammen.

Ich wäre auch an eine Implementierung der Funktion interessiert aber unter VB.NET.

Kann jemand helfen???
 
Zuviel Werbung?
-> Hier kostenlos registrieren
DB Länge - Excel and VB

Hi

ich hab ähnliche Probleme in vba.
Die in Modul12.bas implementierte Funktion daveGetBlockInfo funktioniert bei mir nicht.

Code:
Private Function daveGetBlockInfo(ByVal di As Long) As Byte
    x$ = String$(256, 0)            'create a string of sufficient capacity
    ip = daveInternalGetName(di)    ' have the text for code copied in
    Call daveStringCopy(ip, x$)    ' have the text for code copied in
    x$ = Left$(x$, InStr(x$, Chr$(0)) - 1) ' adjust the length
    daveGetName = x$                       ' and return result
End Function
Leider bin ich nicht der Crack der das alles durchschaut. Dachte mir ein Tippfehler könnte der Rückgabewert sein.
Code:
daveGetBlcokInfo = x$
Leider brachte mich das nicht weiter.
Kann mir da jemand weiterhelfen!?!?!?!

Sollte DBs komplette einlesen und halt dazu die länge wissen. Try and error find ich jetzt nicht so prickelnd, aber ok wäre noch ne möglichkeit.

Danke für jede Rückmeldung.
 
so funktionierts

Hi

hab mir selbst geholfen... falls jemand ähnliche Probleme damit hat hier meine Code ausschnitte.

Nicht Perfekt aber tut ;-)
folgende Deklaration eingefügt
Code:
Private Type daveBlockInfo
    typ(1) As Byte
    x1(1) As Byte '  /* 00 4A */
    w1(1) As Byte  '/* some word var? */
    pp(3) As Byte '/* allways 'pp' */
    x2(1) As Byte ' /* 00 4A */
    number As Integer '/* the block's number */
    x3(25) As Byte '  /* ? */
    length As Integer ' /* the block's length */
    x4(15) As Byte
    bname(7) As Byte
    x5(11) As Byte
End Type
verweis entsprechend abgeändert
Code:
Private Declare Function internalDaveGetBlockInfo Lib "libnodave.dll" _
 Alias "daveGetBlockInfo" (ByVal dc As Long, ByRef buffer As daveBlockInfo, _
 ByVal btype As Long, ByVal number As Long) As Long
Code:
res3 = internalDaveGetBlockInfo(dc, bb, daveBlockType_DB, lngDBNr)
lngDBLength = bb.length
achso noch folgende constanten geändert
Code:
Private Const daveBlockType_OB = 56 'asc("8")
Private Const daveBlockType_DB = 65 'asc("A")
Private Const daveBlockType_SDB = 66 'asc("B")
Private Const daveBlockType_FC = 67 'asc("C")
Private Const daveBlockType_SFC = 68 'asc("D")
Private Const daveBlockType_FB = 69 'asc("E")
Private Const daveBlockType_SFB = 70 'asc("F")
wems hilft...
 
Dot.Net-Wrapper ???

Hi, ich hab mir das Beispiel für VBA angeschaut.

Wie setzte ich das nun in die Wrapper.DLL ein?

Da schauen die Aufrufe ja so aus:

Code:
       [DllImport("libnodave.dll")]
        protected static extern int daveGetProgramBlock(IntPtr dc, int blockType, int number, byte[] buffer, ref int length);
        public int getProgramBlock(int blockType, int number, byte[] buffer, ref int length)
        {
            Console.WriteLine("length:" + length);
            int a = daveGetProgramBlock(pointer, blockType, number, buffer, ref length);
            Console.WriteLine("length:" + length);
            return a;
        }

Kann mir da jemand helfen?

Gruß Fliegertiger
 
Zurück
Oben