niezrozumiałe zachowanie textboxa

0

Witam,

Na podstawie znalezionych w sieci przykładów skleciłem programik pobierający z portu szeregowego dane z arduino
i wyświetlający je w textboxie i jednocześnie zapisujące do pliku tekstowego.

Programik działa zgodnie z oczekiwaniem i wyświetla i zapisuje do pliku wszystkie przesłane przez arduino dane poza niezrozumiałymi dla mnie występującymi co jakiś czas pustymi liniami w texboxie

screenshot-20170224165442.png

fragment kodu odpowiedzialny za to (w stringu RxString przechowywana jest dana odczytana z portu szeregowego):


 private void DisplayText(object s, EventArgs e)

        {
            readTextBox.AppendText(RxString);
            using (StreamWriter writer = new StreamWriter("wyjscie.txt", true))
            {
                writer.Write(RxString);
            }
        }

W pliku tekstowym dane zapisywane są zgodnie z moim zdrowym rozsądkiem (bez żadnych pustych linii)
Czy ktoś mógłby mi to wytłumaczyć?
pozdrawiam

 
0

debug i zobacz czy nie jest czasem pusty string lub nie ma znaku nowej linii :D

0
.Al napisał(a):

debug i zobacz czy nie jest czasem pusty string lub nie ma znaku nowej linii :D

tego samego string'a zapisuje do pliku i tam nowa linia się nie pojawia...
jeśli by pojawiało się to samo na textboxie i w pliku to nie miał bym żadnych uwag i uznał że tak leci z serial'a

0

Cześć, spróbuj otworzyć ten plik tekstowy w innym programie, np Wordpad zamiast notatnika. Kiedyś miałel podobny problem i generalnie notatnik czasami dziwnie się zachowuje, pozdrawiam.

0

@Ci3li: dzięki za odpowiedź, ale źle zrozumiałeś;-)

problem jest pojawianie się pustych linii w textboxie...

Napiszę jeszcze raz:

Zapisuje tego samego stringa do pliku tekstowego i wyświetlam na textboxie.
W pliku tekstowym jest wszystko OK(czyli każdy wpis w nowej linii, bez żadnych pustych),
a na textboxie pojawiają się co 20-30 wpisów puste linie.

Jak to to jest możliwe?
W pierwszym poście jest fragment kodu który to robi.

0

Otwórz ten plik np. w Notepad++ i włącz wyświetlanie znaków końca linii. Może coś jest z tym zamieszane.

0

obrazek:
po lewej nieszczęsny textbox, po prawej Notepad++
wyświetlają tą samą zawartość wygenerowaną z tego samego stringa który przyszedł z portu szeregowego

screenshot-20170302030334.png

0

Widzę w ogóle, że problem pojawia się w różnych miejscach podczas odczytu. Wspominałeś, że to jest odczytywane przez port szeregowy etc... Może masz niskiej jakości połączenie i po prostu idzie jakieś przekłamanie w losowych miejscach i stąd ta pusta linia. Może spróbuj np. zmienić kabelek czy czym tam się łączysz?

Nie wydaje mi się, żeby była to wina formsów, tym bardziej, że plik jest sformatowany w każdej linijce jednakowo.

0

Jesteś mi wstanie wysłać cały kod projektu i sketch arduino? Wygląda mi na problem odczytu z portu :/ Osobiście z czymś takim się jeszcze nie spotkałem. Możesz ewentualnie zamiast zapisywać zamiast do stringa, zamieniać na tablicę byte-ów. I sprawdzać po kolei każdą wartość ;)

0

Ale o co chodzi? Jaki problem z tym portem szanowni koledzy widzą?
Jeśli problem z portem to jakim cudem do pliku zapisuje się po bożemu (ten sam string zapisywany jest do pliku i wyświetlany w textboxie)?
Gdy robiłem to samo "profesjonalnym" programem CoolTerm to żadne cuda się w jego oknie nie pojawiały.

0

Dodaj sobie przy każdej linijce licznik i zobaczymy co będzie, czy pusta linia, czy nr i pustka :D

a może zamiast textboxa użyj richtextbox?

1 użytkowników online, w tym zalogowanych: 0, gości: 1