Thread View: alt.pl.comp.lang.csharp
17 messages
17 total messages
Started by Zeus
Sun, 16 May 2010 20:41
czytanie asynchroniczne pliku - proszę o pomoc
Author: Zeus
Date: Sun, 16 May 2010 20:41
Date: Sun, 16 May 2010 20:41
17 lines
1369 bytes
1369 bytes
//plik zapisany jako txt text text // zbędny nagłówek int double // tylko double int double // tylko double int double // tylko double //itd. do 800000 lini MS VC#2008exp Czy ktoś zechciał by udostępnić kawałek kodu. Ponieważ na temat jest bardzo mało przykładów a ja nie potrafię sobie poradzić z problemem. Pliki są spore i jest ich dużo stąd pomysł o asynchronicznym czytaniu, jednak wykonanie w C# mnie chyba przerosło. Dlatego jeszcze raz proszę o pomoc i wyrozumiałość. Pozdrawiam S.Z.
Re: czytanie asynchroniczne pliku - proszę o pomoc
Author: Maciej Pilichowski
Date: Mon, 17 May 2010 06:20
Date: Mon, 17 May 2010 06:20
11 lines
1304 bytes
1304 bytes
On Sun, 16 May 2010 22:41:22 +0200, Zeus <s.zapasnik@cbk.poznan.pl> wrote: >Pliki s± spore i jest ich dużo st±d pomysł o asynchronicznym czytaniu, Asynchroniczne wobec czego -- pisania do nich? milego dnia -- Moja wyprzedaz wszystkiego: ksiazki, plyty, filmy. http://www.garaz.pol.pl/
Re: czytanie asynchroniczne pliku - proszę o pomoc
Author: GrzybSon
Date: Mon, 17 May 2010 06:27
Date: Mon, 17 May 2010 06:27
53 lines
2837 bytes
2837 bytes
Użytkownik "Zeus" <s.zapasnik@cbk.poznan.pl> napisał w wiadomości
news:4BF05872.5040305@cbk.poznan.pl...
> //plik zapisany jako txt
> text text // zbędny nagłówek
> int double // tylko double
> int double // tylko double
> int double // tylko double
> //itd. do 800000 lini
>
> MS VC#2008exp
>
> Czy ktoś zechciał by udostępnić kawałek kodu. Ponieważ na temat jest
> bardzo mało przykładów a ja nie potrafię sobie poradzić z problemem.
> Pliki są spore i jest ich dużo stąd pomysł o asynchronicznym czytaniu,
> jednak wykonanie w C# mnie chyba przerosło. Dlatego jeszcze raz proszę o
> pomoc i wyrozumiałość.
>
> Pozdrawiam
> S.Z.
>
Napisz najpierw co oznacza dla Ciebie asynchroniczne czytanie pliku i czemu
zamierzasz czytać asynchronicznie?
Z tego co widzę to plik, których chcesz czytać ma ustaloną strukturę ale nie
jest raczej XMLem więc chyba najlepiej tutaj skorzystać z
BinaryReadera:
BinaryReader br = new BinaryReader(new FileStream(FileName, FileMode.Open));
a potem np. do czytania inta czy doubla używasz funkcji br.ReadInt32()
br.ReadDouble() itp.
Ogólnie plik jest wtedy potraktowany jako strumień danych, a wtedy możesz
robić z nim różne rzeczy jak np. przesuwanie się do dowolnego miejsca w
pliku. Nie musisz wtedy wczytywać całego pliku naraz do pamięci, lecz
doczytywać potrzebne informacje na żądanie.
Można także potraktować plik jako tekstowy i wczytać całą zawartość pliku do
pewnej struktury przy pierwszym odczycie pliku używając kodziku:
// create reader & open file
Textreader tr = new StreamReader("date.txt");
// read a line of text
Console.WriteLine(tr.ReadLine());
// close the stream
tr.Close();
--
Pozdro,
Maćko
Re: czytanie asynchroniczne pliku - prosz���������
Author: zeus
Date: Mon, 17 May 2010 07:43
Date: Mon, 17 May 2010 07:43
14 lines
1695 bytes
1695 bytes
Maciej Pilichowski pisze: > On Sun, 16 May 2010 22:41:22 +0200, Zeus <s.zapasnik@cbk.poznan.pl> > wrote: > >> Pliki s± spore i jest ich dużo st±d pomysł o asynchronicznym czytaniu, > > Asynchroniczne wobec czego -- pisania do nich? Są to moje pierwsze kroki w C#. Mam napisany program w C++ (chcę go przepisać na C#) tam używam Fstream z BOOSTa potem już z górki. Tutaj nie bardzo łapię żeby się dało wszystko na raz czytać. Pozdrawiam S.Z.
Re: czytanie asynchroniczne pliku - proszę o pomoc
Author: zeus
Date: Mon, 17 May 2010 07:57
Date: Mon, 17 May 2010 07:57
10 lines
1232 bytes
1232 bytes
Wielkie dzięki za kod. > Napisz najpierw co oznacza dla Ciebie asynchroniczne czytanie pliku i czemu > zamierzasz czytać asynchronicznie? Ja rozumiałem to tak, że można uruchomić czytanie X-plików na raz. Pliki się czytają do X-vectorów a ja robię w kodzie coś innego np. rysuję przyciski itp. Pozdrawiam S.Z.
Re: czytanie asynchroniczne pliku - proszę o pomoc
Author: GrzybSon
Date: Mon, 17 May 2010 08:44
Date: Mon, 17 May 2010 08:44
22 lines
1704 bytes
1704 bytes
Użytkownik "zeus" <zeus@cbk.poznan.pl> napisał w wiadomości news:4BF0F6FD.1080500@cbk.poznan.pl... > Wielkie dzięki za kod. > >> Napisz najpierw co oznacza dla Ciebie asynchroniczne czytanie pliku i >> czemu zamierzasz czytać asynchronicznie? > Ja rozumiałem to tak, że można uruchomić czytanie X-plików na raz. Pliki > się czytają do X-vectorów a ja robię w kodzie coś innego np. rysuję > przyciski itp. > > Pozdrawiam > S.Z. No to musisz skorzystać z wielowątkowości i czytać każdy plik w osobnym wątku. Co po przeczytaniu plików chcesz robić z tymi danymi? -- Pozdro, Maćko
Re: czytanie asynchroniczne pliku - proszę o pomoc
Author: zeus
Date: Mon, 17 May 2010 09:11
Date: Mon, 17 May 2010 09:11
12 lines
1325 bytes
1325 bytes
> No to musisz skorzystać z wielowątkowości i czytać każdy plik w osobnym > wątku. > Co po przeczytaniu plików chcesz robić z tymi danymi? > Trzeba to wszystko policzyć (dane pomiarowe). Liczenie zabiera sporo czasu - wielomiany. Potem filtr i wyniki na wykres. A potem można zapakować i wysłać do bazy centrum obliczeniowego. Pozdrawiam S.Z.
Re: czytanie asynchroniczne pliku - proszę o pomoc
Author: Karol Y
Date: Mon, 17 May 2010 13:34
Date: Mon, 17 May 2010 13:34
16 lines
1757 bytes
1757 bytes
> Trzeba to wszystko policzyć (dane pomiarowe). > Liczenie zabiera sporo czasu - wielomiany. > Potem filtr i wyniki na wykres. > A potem można zapakować i wysłać do bazy centrum obliczeniowego. Znając dokładniejszą specyfikacje Twojej "pracy", można by coś lepiej doradzić, a tak strzelam, że dane z tych plików potrzebne są do obliczeń niejako równolegle. Zgadza się? W takim wypadku, do ich czytania nie potrzebna by była wielowątkowość. Chyba, że dane są na różnych (fizycznie) nośnikach, a szybkość obliczeń ewidentnie wskazuje na wzrost prędkości w przypadku zwiększenia szybkości odczytu danych. -- Mateusz Bogusz
Re: czytanie asynchroniczne pliku - proszę o pomoc
Author: GrzybSon
Date: Mon, 17 May 2010 13:46
Date: Mon, 17 May 2010 13:46
25 lines
2107 bytes
2107 bytes
Użytkownik "Karol Y" <karolyyy@o2.pl> napisał w wiadomości news:hsrfvs$brk$1@node1.news.atman.pl... >> Trzeba to wszystko policzyć (dane pomiarowe). >> Liczenie zabiera sporo czasu - wielomiany. >> Potem filtr i wyniki na wykres. >> A potem można zapakować i wysłać do bazy centrum obliczeniowego. > > Znając dokładniejszą specyfikacje Twojej "pracy", można by coś lepiej > doradzić, a tak strzelam, że dane z tych plików potrzebne są do obliczeń > niejako równolegle. Zgadza się? > > W takim wypadku, do ich czytania nie potrzebna by była wielowątkowość. > Chyba, że dane są na różnych (fizycznie) nośnikach, a szybkość obliczeń > ewidentnie wskazuje na wzrost prędkości w przypadku zwiększenia szybkości > odczytu danych. > > -- > Mateusz Bogusz Przecież kolega napisał, że chce czytać x-plików na raz czyli jednocześnie. To jak to zamierzasz rozwiązać bez wątków? -- Pozdro, Maćko
Re: czytanie asynchroniczne pliku - proszę o pomoc
Author: Rafał R Prasał
Date: Mon, 17 May 2010 15:36
Date: Mon, 17 May 2010 15:36
10 lines
1470 bytes
1470 bytes
W dniu 2010-05-17 15:46, GrzybSon pisze: > [...] > Przecież kolega napisał, że chce czytać x-plików na raz czyli jednocześnie. > To jak to zamierzasz rozwiązać bez wątków? Szeregowaniem odczytów?. Wczytujesz porcję danych, przetwarzasz wczytujesz porcję z innego pliku, przetwarzasz i tak w kółko. Rafał Prasał.
Re: czytanie asynchroniczne pliku - proszę o pomoc
Author: Maciej Pilichowski
Date: Tue, 18 May 2010 06:27
Date: Tue, 18 May 2010 06:27
17 lines
1702 bytes
1702 bytes
On Mon, 17 May 2010 09:57:49 +0200, zeus <zeus@cbk.poznan.pl> wrote: >Ja rozumiałem to tak, że można uruchomić czytanie X-plików na raz. Pliki >się czytaj± do X-vectorów a ja robię w kodzie co¶ innego np. rysuję >przyciski itp. Mozna, ale nie warto. Odczyt i tak sie bedzie blokowal, bo procesor jest szybszy niz dysk twardy (nawet SSD). Zrob to szeregowo i pozniej sprawdz, co jest waskim gardlem. Skoro nawet nie zaczales, optymalizacja na tym etapie jest mocno przedwczesna. milego dnia, hej -- Moja wyprzedaz wszystkiego: ksiazki, plyty, filmy. http://www.garaz.pol.pl/
Re: czytanie asynchroniczne pliku - prosz���������
Author: zeus
Date: Tue, 18 May 2010 07:11
Date: Tue, 18 May 2010 07:11
14 lines
1595 bytes
1595 bytes
> Mozna, ale nie warto. Odczyt i tak sie bedzie blokowal, bo procesor > jest szybszy niz dysk twardy (nawet SSD). Zrob to szeregowo i pozniej > sprawdz, co jest waskim gardlem. > > Skoro nawet nie zaczales, optymalizacja na tym etapie jest mocno > przedwczesna. Mam program działający napisany w C++ a interfejs w C++CLI(rysowanie wykresu i wstępne ręczne filtrowanie) i chciałem przepisać na C#. Dlatego szukam miejsc gdzie można przyspieszyć no i przy okazji nauczyć się C#. Pozdrawiam S.Z.
Re: czytanie asynchroniczne pliku - prosz���������
Author: Karol Y
Date: Tue, 18 May 2010 16:28
Date: Tue, 18 May 2010 16:28
11 lines
1560 bytes
1560 bytes
> Mam program działający napisany w C++ a interfejs w C++CLI(rysowanie > wykresu i wstępne ręczne filtrowanie) i chciałem przepisać na C#. > Dlatego szukam miejsc gdzie można przyspieszyć no i przy okazji nauczyć > się C#. A te kody są tajne, czy bez oporów byś dał popatrzeć? Po prostu pytam. Bo łatwiej by było jakby chociaż jakiś pseudo-algorytm zobaczyć co się tam dzieje, to moglibyśmy dyskutować co poprawić. -- Mateusz Bogusz
Re: czytanie asynchroniczne pliku
Author: Zeus
Date: Tue, 18 May 2010 20:33
Date: Tue, 18 May 2010 20:33
11 lines
1483 bytes
1483 bytes
> A te kody są tajne, czy bez oporów byś dał popatrzeć? Po prostu pytam. > Bo łatwiej by było jakby chociaż jakiś pseudo-algorytm zobaczyć co się > tam dzieje, to moglibyśmy dyskutować co poprawić. Program pobiera dane i liczy. Niestety kodów liczących nie mogę pokazać bo to praca zespołu musiałbym mieć zgodę. Te dane po obróbce są wykorzystywane do liczenia pozycji i prędkości punktu na ziemi z dokładnością 1mm XYZ (geodezja satelitarna). Pozdrawiam S.Z.
Re: czytanie asynchroniczne pliku - proszę o pomoc
Author: 3P
Date: Thu, 20 May 2010 18:27
Date: Thu, 20 May 2010 18:27
28 lines
2146 bytes
2146 bytes
Dnia 17-05-2010 o 15:46:13 GrzybSon <mrychter@kenbit.pl> napisał(a): > U¿ytkownik "Karol Y" <karolyyy@o2.pl> napisa³ w wiadomo¶ci > news:hsrfvs$brk$1@node1.news.atman.pl... >>> Trzeba to wszystko policzyæ (dane pomiarowe). >>> Liczenie zabiera sporo czasu - wielomiany. >>> Potem filtr i wyniki na wykres. >>> A potem mo¿na zapakowaæ i wys³aæ do bazy centrum obliczeniowego. >> >> Znaj±c dok³adniejsz± specyfikacje Twojej "pracy", mo¿na by co¶ lepiej >> doradziæ, a tak strzelam, ¿e dane z tych plików potrzebne s± do obliczeñ >> niejako równolegle. Zgadza siê? >> >> W takim wypadku, do ich czytania nie potrzebna by by³a wielow±tkowo¶æ. >> Chyba, ¿e dane s± na ró¿nych (fizycznie) no¶nikach, a szybko¶æ obliczeñ >> ewidentnie wskazuje na wzrost prêdko¶ci w przypadku zwiêkszenia >> szybko¶ci >> odczytu danych. >> >> -- >> Mateusz Bogusz > > Przecie¿ kolega napisa³, ¿e chce czytaæ x-plików na raz czyli > jednocze¶nie. > To jak to zamierzasz rozwi±zaæ bez w±tków? > A o FileStream.BeginRead panowie słyszęli!?
Re: czytanie asynchroniczne pliku
Author: Karol Y
Date: Thu, 20 May 2010 22:21
Date: Thu, 20 May 2010 22:21
15 lines
1734 bytes
1734 bytes
>> A te kody są tajne, czy bez oporów byś dał popatrzeć? Po prostu pytam. >> Bo łatwiej by było jakby chociaż jakiś pseudo-algorytm zobaczyć co się >> tam dzieje, to moglibyśmy dyskutować co poprawić. > > Program pobiera dane i liczy. Niestety kodów liczących nie mogę pokazać > bo to praca zespołu musiałbym mieć zgodę. Te dane po obróbce są > wykorzystywane do liczenia pozycji i prędkości punktu na ziemi z > dokładnością 1mm XYZ (geodezja satelitarna). No tak, a z technicznego punktu widzenia, to ze wszystkich plików jakaś "paczka" danych jest potrzebna do wykonania obliczenia, czy każdy plik może być liczony osobno? -- Mateusz Bogusz
Re: czytanie asynchroniczne pliku
Author: Zeus
Date: Fri, 21 May 2010 19:27
Date: Fri, 21 May 2010 19:27
14 lines
1689 bytes
1689 bytes
> No tak, a z technicznego punktu widzenia, to ze wszystkich plików jakaś > "paczka" danych jest potrzebna do wykonania obliczenia, czy każdy plik > może być liczony osobno? > Muszą być co najmniej dwa pliki dla (jeden wątek) jednej operacji liczenia i muszę je mieć w całości w vectorze (min, max, wartość początkowa, końcowa, sortowanie). Wątkowanie sporo mi przyspieszyło program. Czy można jeszcze przyspieszyć na razie nie wiem, sprawdzam czy działa w CLI i przenoszę do C#. Teoretycznie działa poprawnie tzn. jeszcze się nic nie wali. Jak będą problemy to będę dopytywał Pozdrawiam S.Z.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads