[ SpizaGenije @ 15.03.2010. 01:48 ] @
Pročitah sve na ovom i milion drugih foruma, ali ne nađoh rešenje problema!

Naime, pokušavam da pročitam signal koji mi šalje digitalna vaga na RS232 (uspeo, ali nije u tome problem)! :p
Po USER MANUAL-u koji imam, ova vaga kada se podesi na jednu od funkcija, radi sledeće:

f1 - no transmision (rs232 stop), - svi znamo šta znači
f2 - continuous transmision, - non - stop šalje signal
f3 - continuous transmision when stable, - šalje signal samo onda kada dobije fiksnu vrednost (ne šalje prilikom odmeravanja)
f4 - command mode (Z: zero, T:tare, R: transmit data once time) - ja joj na rs232 šaljem R, T ili Z
f5 - current loop output,
f6 - keep (printer)...

(vaga šalje 10 bita informacija... prvi početni, deseti završni... sve sam to uhvatio na textbox i dobijem rezultat nw000.000kg)

e sada... moj problem je sledeći... ne mogu da izdvojim ono 000.000 iz signala, jer u textboxu dobijam niz (promenljive veličine naravno), pa to sve izgleda ovako :nw000.000kg/nw000.000kg/nw000.000kg/nw000.000kg/nw000.000kg/nw000.000kg/nw000.000kg/nw000.000kg/.....
Kako da izdvojim poslednju brojnu vrednost u nizu...
da li postoji način da izdvajam od kraja niza sve što mi se nalazi između k i w... ili?

i šta znači current loop output i kako da prikažem na textboksu signal koji mi šalje u tom režimu... pošto mi kôd za f2, f3 i f4 ne vredi u ovom slučaju...

Hvala unapred!
[ Marko_L @ 15.03.2010. 02:05 ] @
Pa generalno gledano, jednom kada dobiješ string, ti njime možeš da maniupulišeš kako god, hoćeš... sve zavisi šta hoćeš da postigneš.
Ako ti je string uvek u istom obliku, tj. kao što si već naveo
Code:
"nw000.000kg/nw000.000kg/nw000.000kg/nw000.000kg/nw000.000kg/nw000.000kg/nw000.000kg/nw000.000kg/"

onda je stvar olakšana, jer sve što treba je da splituješ po karakteru "/" i onda funkcijom Replace otkloniš višak. To će raditi sa bilo kojom dužinom stringa. Ovako nekako
Code:
Dim strTemp() As String
strTemp = Split(Text1.Text, "/")

Dim I As Long

For I = LBound(strTemp) To Ubound(strTemp)
   MsgBox Replace(Replace(strTemp(I), "nw", ""), "kg", "")
Next I

i to ti je to. Ako nemaš onaj karakter "/" nego si to ti dodao ručno, već imaš ovaj string
Code:
"nw000.000kgnw000.000kgnw000.000kgnw000.000kgnw000.000kgnw000.000kgnw000.000kgnw000.000kg"

onda je još lakše, jer možeš da koristiš kg kao separator
Code:
Dim strTemp() As String
strTemp = Split(Text1.Text, "kg")

Dim I As Long

For I = LBound(strTemp) To Ubound(strTemp)
   MsgBox Replace(strTemp(I), "nw", "")
Next I

[ SpizaGenije @ 15.03.2010. 03:50 ] @
a pošto svakako primam deset bita podataka, mogu li svaki bit posebno da prikažem u, recimo flexgrid-u... pošto mi ovo gore rešenje baš i ne pomaže... probao sam ga prepraviti, ali nije dalo rezultate... kada bih mogao negde da prikazujem svaki bit posebno, onda bih mogao i izvući ono što mi treba... ja sam napisao neki kôd, ali sve što sam dobio jeste da mi slova i brojevi samo protutnje i da mi se prikaže EOF znak (a ne "/" kako sam ranije naveo) u svakom polju grida... evo kôda, pa ako ga neko može ispraviti:

Code:

.................................
InBuff = MSComm1.Input
.................................

Dim AAA As String
AAA = InBuff

    With FG1
        For I = 0 To 0
            For J = 0 To 9
            .textmatrix = AAA
            Next J
        Next I
    End With

[ SpizaGenije @ 19.03.2010. 23:20 ] @
Za sve one koje bude zanimalo! Skontah se pre par dana!





Code:

      Dim trazi As String
      Dim tekst_desni As String
      Dim tekst_konacni As String
      trazi = Right(Text1.Text, 1)
      
      If trazi = "g" Then
            tekst_desni = Right(Text1.Text, 9)
            tekst_konacni = Left(tekst_desni, 7)
            Text2.Text = tekst_konacni
            Label2.Caption = Val(tekst_konacni) & "kg"
      End If





Ako neko ima neki brži kôd, neka ga nalepi, pošto mi ovaj i nije baš najsjajniji! :p