Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 6 kwi 2025, o 00:03


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 
    Autor Wiadomość
    PostNapisane: 8 paź 2016, o 16:59 
    Offline
    Użytkownik

    Dołączył(a): 04 sie 2014
    Posty: 207
    Pomógł: 0

    Witajcie,

    mam taki problem: chcę zapisać do pliku tablicę bajtową o wymiarze ok 800 elementów. Robię to tak:

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Z tego co widzę zapisuje mi do pliku, jak otworzę w Excel'u to każdy element mam w osobnej komórce. Cacy.

    Teraz odczyt i z tym mam problem (chcę odczytać z pliku .csv do tablicy bajtowej, którą przetwarzam już po swojemu).

    Miałem kilka pomysłów... pewnie głupie ale trudno. Sposób 1:
    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Sposób 2:
    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Nie wiedziałem czy odczyta mi znaki ";" więc by się ich pozbyć:
    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Pierwszy raz w życiu chcę .csv zapisać i odczytać. Samego c# uczę się od niedawna, lecz to jest mi bardzo potrzebne. Ktoś pomoże? Jeszcze raz jak chciałbym zrobić:
    - zapisać tablicą bajtową do pliku .csv
    - odczytać plik .csv i umieścić w tablicy bajtowej

    Będę bardzo wdzięczny za pomoc



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 paź 2016, o 17:18 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    hmm sposobów jest w sumie wiele , zakładając że przecież plik CSV to plik textowy, w którym dane są oddzielone separatorem , Czytasz go więc linia po linii po czym każda linia zostaje rozbita
    na tablice stringów zgodnie z separatorem ...

    czyli mozna to zrobić tak:

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    ew można zrobić trochę inaczej niż tak prostacko i mało elegancko jak wyżej np:

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    możesz też pakować od razu do DataGridView co jest lepszym, rozwiązaniem masz tu http://stackoverflow.com/questions/6420 ... tagridview
    rozwiązań jest wiele ... sposobów też , ...

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 paź 2016, o 17:43 
    Offline
    Użytkownik

    Dołączył(a): 04 sie 2014
    Posty: 207
    Pomógł: 0

    Szukałem i gdzieś już natknąłem się na praktycznie taki sam kod jak napisałeś. Tam ktoś pytał jak odczytać bodajże 15 linijkę z pliku .csv. Czy to z tego powodu tutaj jest ten if z 15?

    Tutaj dane otrzymam w tablicy ale w string. Jak to przerobić na byte? W C# szczerze powiedziawszy nie wiem, osobiście bym zrobił tak, że rzutowałbym tego string'a na byte a następnie odjął 0x30 (lub 48 decymalnie) zgodnie z tablicą ASCII. Tyle że nie wiem czy C# to przełknie.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 paź 2016, o 17:52 
    Offline
    Nowy

    Dołączył(a): 01 wrz 2016
    Posty: 9
    Pomógł: 5

    Dokładnie ten kod jest całkowicie przerypany z neta, nawet nie został przeanalizowany tylko zmienne na polski zamienione.

    Podaj przykładowe dane do odczytu.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 paź 2016, o 18:00 
    Offline
    Użytkownik

    Dołączył(a): 04 sie 2014
    Posty: 207
    Pomógł: 0

    Tak naprawdę największy problem stwarza mi dobre przekonwertowanie tablicy string na tablicę byte.

    W załączniku dodaję przykładowy plik .csv. Próbuję teraz zrobić to tak:
    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Lecz pokazuje error dla tab w lini: test = Encoding.UTF8.GetBytes(tab);


    Załączniki:

    Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 paź 2016, o 18:12 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    Oczywiście to sa przykłady nie napisałem też że to napisałem tylko pokazałem kilka ...
    sam nie stosuję plików CSV , gdyż jest to powolne przy dużych ilościach danych ...
    ale czy to ma znaczenie ?? Nie ... najrozsądniejsze wydaje mi sie pakowanie do DataGrida
    co podlinkowałem ze stacka ...

    Jaki dokładnie błąd ci pokazuje ??

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 paź 2016, o 18:15 
    Offline
    Użytkownik

    Dołączył(a): 04 sie 2014
    Posty: 207
    Pomógł: 0

    Zależy o który błąd pytasz :(

    ogółem ciągle pisze że nie może przerobić typu string na byte. Jeżeli tylko dam radę przerobić te tablicę string'ów na tablicą byte "będę w domu".



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 paź 2016, o 18:41 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    Zobacz tu.
    http://stackoverflow.com/questions/1607 ... in-c-sharp

    rozsądne jest stosowanie System.text i metody ASCIIEncoding.Deflaut ...
    C# przełyka wiele , ale tez i bywa upierdliwy...

    warto korzystać z msdn ... https://msdn.microsoft.com/pl-pl/library/bb397679.aspx
    masz jeszcze tu http://net-informations.com/q/faq/stringtobyte.html


    Autor postu otrzymał pochwałę

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 paź 2016, o 18:53 
    Offline
    Nowy

    Dołączył(a): 01 wrz 2016
    Posty: 9
    Pomógł: 5

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 paź 2016, o 19:06 
    Offline
    Użytkownik

    Dołączył(a): 04 sie 2014
    Posty: 207
    Pomógł: 0

    @SunRiver, faktycznie C# jest upierdliwy lecz mimo wszystko nawet przyjemnie tworzy się w nim aplikacje okienkowe. Przynajmniej lepiej niż w czystym C :) Przeglądam to i walczę dalej.

    @developer, tabBajtow.ToString(); konwertuje na stringi to co chcę mieć w hex? Do tego widzę, że tutaj do listy dopisujesz elementy przekonwertowane na byte, a jak zrobić bym to od razu do tablicy wrzucał? Problem w tym, że potrzebuję to w tablicy, nie liście :(

    Teraz mam takie coś:
    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Dostaje taki komunikat po próbie wczytania pliku:
    Obrazek



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 paź 2016, o 19:09 
    Offline
    Nowy

    Dołączył(a): 01 wrz 2016
    Posty: 9
    Pomógł: 5

    Przeanalizuj kod jeszcze raz dodałem komentarz. Zakładam że tablice wolisz mieć dlatego że nie wiesz za bardzo
    co to jest lista (chociaż mogę sie mylić).
    Widze żę trzeba napisać pełny kod ale ok.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 paź 2016, o 19:12 
    Offline
    Użytkownik

    Dołączył(a): 04 sie 2014
    Posty: 207
    Pomógł: 0

    Mniej więcej wiem co to lista, lecz... Wynika to z tego, że dopiero uczę sie C# a w C nie było list (przynajmniej ja o nich nie wiem). Gdy odpisywałem nie miałem komunikatu, że jest tam komentarz, wiem już po co tamta linijka. Teraz czemu tak potrzebuję mieć to w tablicy: początkowo nie miałem zapisu do pliku .csv więc mam dalszy kod przystosowany pod tablicę. Jeżeli teraz będę miał listę to... będę musiał bardzo dużo modyfikować. Chyba że da się przepisać listę do tablicy? Tak jak pisałem na początku, bardzo mało wiem o listach, dopiero zaczynam ;/



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 paź 2016, o 19:15 
    Offline
    Nowy

    Dołączył(a): 01 wrz 2016
    Posty: 9
    Pomógł: 5

    A wiesz ile będzie miał bajtów za każdym razem do odczytu z plików? Ilość jest zawsze taka sama?


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 paź 2016, o 19:17 
    Offline
    Użytkownik

    Dołączył(a): 04 sie 2014
    Posty: 207
    Pomógł: 0

    Tak, ilość jest zawsze taka sama. Tylko w miarę "rozwoju" programu może ulegać to zmianie. Niemniej jednak liczba jest stała. Mam ok 250 okienek (na ten moment) z których odczytuję dane bajtowe i zawsze wszystkie po odczytaniu trafiają do pliku .csv. Potem chcę z tego pliku wczytać te dane do tych okienek.

    ------------------------ [ Dodano po: 7 minutach ]

    Chciałem to teraz tak ugryźć (ostatnia linijka):
    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Pokazuje że nie może tego zrobić bo tab jest stringiem, a musi być char'em... Wzoruję się na tej stronie: http://net-informations.com/q/faq/stringtobyte.html



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 paź 2016, o 19:33 
    Offline
    Nowy

    Dołączył(a): 01 wrz 2016
    Posty: 9
    Pomógł: 5

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 paź 2016, o 20:10 
    Offline
    Użytkownik

    Dołączył(a): 04 sie 2014
    Posty: 207
    Pomógł: 0

    Działa, wreszcie.

    Bardzo dziękuję!!
    Przerobiłem to bardzo delikatnie tak, bym mógł mu ręcznie wskazywać położenie pliku. Kod:

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Jeszcze raz bardzo dziękuje. Co prawda sporo z tego kodu nie rozumie, lecz mam punkt wyjścia i tyle to już wygrzebię w Internecie (bo już wiem co mam szukać). Od 3 dni się męczę z tym odczytem... w życiu sam bym tego nie zrobił.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 paź 2016, o 20:25 
    Offline
    Nowy

    Dołączył(a): 01 wrz 2016
    Posty: 9
    Pomógł: 5

    proszę.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 gru 2016, o 21:05 
    Offline
    Użytkownik

    Dołączył(a): 04 sie 2014
    Posty: 207
    Pomógł: 0

    Nie chcę spamować nowym tematem i mam nadzieję, że ktoś tu zajrzy. Problem wygląda tak jak wyżej pisałem, lecz teraz poza bajtami w hex muszę do pliku zapisać ciągi tekstowe... Sam zapis nie jest problemem, robię to tak:

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Gorzej z odczytem... Jak to przerobić by najpierw mi odczytało powiedzmy 200 bajtów (znam rozmiar, jest stały) i przerobiło na bajty a dalsze przerobiło na string i wyświetliło w oknie TextBox? Próbowałem tak robić:
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO