[ Aleksandar Ružičić @ 06.06.2004. 00:44 ] @
Evo sta me zanima:
Zelim da imam neke fajlove (npr .txt) koji, kada ih ucitam, budu deo koda (nesto na foru plug-ina). Takodje treba da budu kriptovani i da ih dekriptujem u samom programu.
Ovo oko kriptovanja/dekriptovanja znam ali kako da ubacim deo koda iz nekog fajla?
npr. u fajlu je deo koda koji ubaci text box i command button (load) i pritiskom na command button cuva unet text (text box) u registry...
Dao sam neki primer bezveze ali da bih vam objasnio sta me zanima.
Molim vas da mi pomognete, ako znate.
[ mladenovicz @ 17.07.2004. 16:06 ] @
Za ovo moras da osmislis neku svoju sintaksu. Znaci, u .txt fajlu stoji npr.

Code:

ADD CommandButton 100, 200


i ti onda u svojoj aplikaciji parsiras taj string, pa ako naidjes na ADD onda dodajes novu kontrolu (u ovom slucaju CommandButton). U fajlu mozes da cuvas i npr. Left i Top i sta god, ali aplikcaija mora da zna sta treba da radi sa tim, a to moras ti da izprogramiras :)
[ Aleksandar Ružičić @ 19.07.2004. 13:09 ] @
Pa, razmisljao sam ja o toj sintaksi i vec sam je osmislio samo ne znam kako da parsiram to u kod???
[ mladenovicz @ 19.07.2004. 13:26 ] @
Ako zans sta hoces, onda ces znati i da parsiras. :)

Npr. ovo,

Code:

ADD CommandButton 100, 200


zahteva sledece operacije (podrazumeva se da na formi postoji kontrola Command1 sa Index=0 i koja je Visible=False):

Code:

    Dim NewIndex As Integer
    
    '-- izracunaj sledeci index
    NewIndex = Command1.UBound + 1
    '-- parsiraj string, operacija je dodavanje kontrole, kontrola je command button
    '-- left i top su 100 i 200
    '-- ucitaj novi button
    Load Command1(NewIndex)
    '-- pozicinoiraj button na odgovarajuce mesto
    Command1(NewIndex).Move 100, 200
    '-- prikazi novi button
    Command1(NewIndex).Visible = True


E sad, ti u eksternom fajlu mozes da cuvas i caption dugmeta, backcolor, ...
[ Shadowed @ 19.07.2004. 20:40 ] @
Mislim da je njemu problem bas ovaj deo koji si ostavio kao komentar:
Code:
'-- parsiraj string, operacija je dodavanje kontrole, kontrola je command button

Ako bi koristio sintaksu kao u primeru koji je mladenovicz dao mogao bi da odvojis pojedine reci. Prva rec je komanda. Proveris koja je iz liste mogucih komandi. Svaka komanda ima svoj spisak i redosled parametara i onda su to ostale reci.
[ mladenovicz @ 19.07.2004. 20:51 ] @
U pravu si Shadowed. U guzvi sam pa ne citam izmedju redova :)
Najbolje je znaci da komanda bude smestena u jednoj liniji, a parametri odvojeni nekim separatorom, npr ",", s tim sto moras tacno da definises znacenje pojedinih parametara, npr. prvo ide tip komande, pa tip kontrole, pa left, pa top

Code:

ADD,CommandButton,100,200


Za citanje fajla liniju po liniju pogledaj top topic o FSO.

Parsiranje: postoji funkcija Split koja ti vraca niz iz nekog stringa, s tim sto parsira string po zadatom separatoru.

Code:

    Dim arrParams() As String
    Dim sInput      As String
    
    sInput = "ADD,CommandButton,100,200"
    arrParams() = Split(sInput, ",")


daje

Code:

    arrParams(0) = "ADD"
    arrParams(1) = "CommandButton"
    arrParams(2) = "100"
    arrParams(3) = "200"


i onda zavisno od vrednosti iz ovog niza picis dalje

Code:

    Select Case TipKomande
        Case "ADD"
            Select Case TipKontrole
                Case "CommandButton"
                
                Case "TextBox"
                
            End Select
            
        Case "DELETE"
    End Select
[ Aleksandar Ružičić @ 21.07.2004. 01:37 ] @
Hvala, ovo mi je mnogo pomoglo!
Osmislio sam svoju sintaksu koja mnogo lici na INI fajlove (nekako mi tako najlakse :). Samo imam jos jedan problem:
mogu da ucitavam i da brisem kontrole , da im postavljam razne vrednosti, samo ne znam kako da ubacim nesto u neki sub???
imam na primer string
Code:

MsgBox "Hello!"

Koji treba da ubacim u Command1_Click(Index As Integer) funkciju, samo ne znam kako???
Da li mogu npr. da imam ovakvu sintaksu:
Code:

[click]

Open "C:\test.txt" for Binary As #1
TextBox(1).Text = Input(LOF(1), #1)
Close #1

[/click]

I kada ovo ucitam (kako?) da ubacim u Click sub...
[ Shadowed @ 21.07.2004. 08:11 ] @
Ako hoces da imas sintaksu samog VB-a u svom eksternom fajlu bice tesko. Mozda je bolje da se ne prihvatas da sam radis to (onako kako smo opisali za jednostavniju sintaksu) vec da pogledas na Net-u postoji li to vec uradjeno.
[ Aleksandar Ružičić @ 24.07.2004. 00:40 ] @
Pa, ovu temu sam postavio zato sto mi treba bas nesto tako...
Da slucajno u Visual Basicu ne postoji nesto kao
Code:

#include <..>

komanda???
[ Aleksandar Ružičić @ 26.07.2004. 01:13 ] @
Resio sam problem: kada se klikne na dugme pokrenem odgovarajuci program (click.exe) koji je nevidljiv - ima samo modul, koji mi odradi ono sto treba kad se klikne na dugme.

Samo imam jedno pitanje:
Posto sada izmedju programa (glavnog i click) komuniciram uz pomocu komandi koje citam\dajem preko jednog text fajla, interesuje me da li mogu da izmedju dva programa saljem stringove preko nekih API funkcija ili slicno (da ne koristim nikakve fajlove ili registry)?
[ Shadowed @ 28.07.2004. 15:50 ] @
Mozes da otvoris TCP konekciju ali ne vidim zasto bi koristio tako nesto kad sav kod koji smestas u click.exe mozes i u glavni.exe.