Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Visual Basic 2010 - Wycinanie stringa

fliper_katrill 11 Mar 2016 14:24 615 2
  • #1 11 Mar 2016 14:24
    fliper_katrill
    Poziom 20  

    Witam serdecznie kolegów,
    czy któryś z Was mógłby mi wyjaśnić lub pomóc wyciąć ze stringa określoną ilość znaków? Kod podprogramu:

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    Teoretycznie zmienna Me.TextBox2.Text jest stringiem i korzystając z funkcji Left() wycinam interesująca mnie liczbę znaków.
    Odczytuję nr karty RFID po wycięciu z całego stringa ma postać: 8AD2110B01
    przed wycięciem 8AD2110B01Z: ON a nie potrzebuję Z: ON, przykładam drugą kartę do zczytania i w TextBox2 dalej widnieje mi 8AD2110B01 jakby dalsza część stringa z portu COM była ta sama (a nie jest) lub jakby nie widział program dalszej części stringa lub funkcja Left() w ogóle wycinała całą resztę przychodzącego bufora portu COM. Bez funkcji Left() efekt jest taki:
    8AD2110B01
    Z: ON
    70581B0032
    Z: ON
    i tak w kółko (ważne jest, że po cyfrach jest znak przejścia do nowej linii)
    moim celem jest to , by po każdorazowym przytknięciu karty i zczytaniu numeru wyciąć tylko 10 cyfr numeru karty bez znaków nowej linii i przeniesienia oraz Z: ON. Problemu doszukuję się w zlepianiu stringów operatorem &= co Wy na to?

    Dziękuję i pozdrawiam

    1 2
  • #2 11 Mar 2016 15:38
    wiesniak
    Poziom 31  

    Dlaczego obcinasz tekst z textboxa zamiast z tego co odbierzesz, czyli z parametru text?
    Najpierw obcinaj z text, a później doklejaj do textboxa, bo rozumiem, że chcesz mieć w polu tekstowym kolejne wartości.
    Poza tym zamiast Microsoft.VisualBasic.Left proponuję użyć metody Substring - text.Substring(0, 10).

    0
  • #3 14 Mar 2016 09:35
    fliper_katrill
    Poziom 20  

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    Pozmieniałem zmienne, żeby się nie myliły z kodem....
    w tej chwili wywala błąd: "Indeks i długość muszą odwoływać się do lokalizacji w ciągu.Nazwa parametru: length"
    Testowo zmieniłem długość "cięcia" na 3. Teraz jest taki efekt, że póki ma co ciąć to wstawia co 3 znaki z danych otrzymanych po RS (odświeża TextBox2, nie dopisuje bo wywaliłem &, tak ma być), jak mu się skończą dane w buforze wywala to co powyżej, proszę o dalszą pomoc :)
    PS. Próba, oto dane:
    0B0, 1+CR+CL (nadal 3 znaki) i wysypka...
    Nie zaczyna od początku otrzymanego stringa tylko wybiórczo, może odświeżać jakoś bufor rs?

    1