Wpis z mikrobloga

@MikelThief:
Czy ten kod zwraca inny wynik?

foreach(var tempLine in File.ReadLines(sourcePath))
{
decoderBlockingCollection.Add(tempLine);
}
decoderBlockingCollection.CompleteAdding();

Czy jesteś absolutnie pewien, że projekt kompiluje się w x64?
@MikelThief:
Czyli kodujesz każdy znak szukając jego pozycji w kolejnym stringu - których jest łącznie 18
- a następnie, na podstawie tej pozycji wyznaczasz ostateczny znak w innym stringu 'model' i ten znak trafia do pliku wynikowego?
@MikelThief:
Nie wiem czy jest powód do tworzenia tak skomplikowanego rozwiązania w momencie gdy algorytm dekodujący jest tak mało złożony i czas dekodowania tej jednej linii jest pewnie tysiące razy mniejszy niż jej odczyt lub zapis.

Na początku spróbowałbym zrobić to po prostu tak:
https://pastebin.com/Av9JesAx
@w_o_w: tak. tylko że jest ich 20 (od 0 do 19).
Wydawało mi się, że takie rozwiązanie będzie ok. zaraz zobaczę Twoje (na początku tak miałem, ale wtedy jeszcze nie napotkałem na ten wyjątek).
@MikelThief: w poscie na SO napisales, ze wyrzuca exception przy ok ~2GB wykorzystanej pamieci (czyli .NETowy limit dla aplikacji uzywajacych architektury x86. VS dziala tylko na x86 takze podczas debugowania masz (tylko) 2GB pamieci do dyspozycji zamiast 8TB na x64. Probowales skompilowac na x64 i uruchomic pod Windowsem?
@bacteria: uruchamiam pod windowsem. Czytałem także, że Stream tak czy inaczej ma 2GB limit. I wydaje mi się, że to może być problem. nadal z tym próbuję walczyć. obecnie napisałem funkcję, która nie czyta linii a porcje danych, ale dopasowuje końcówkę tej porcji tak, żeby kończyła się tam gdzie linia. Wtedy będę mógł odpalić czytanie jeszcze raz, ale tym razem przesunę je od razu do pewnego miejsca w pliku.
via Wykop Mobilny (Android)
  • 0
@kywmn: @bacteria: @w_o_w:
Okazało się że plik do analizy który dostałem jest po prostu uszkodzony. Po 12h testów różnymi sposobami i programami (i testów innych poprawnych plików) doszedłem do takiego wniosku. Przepraszam za klopot (,)
@MikelThief: Czy jesteś w stanie powiedzieć co w tym pliku jest nie tak? Pytam z ciekawości bo nie potrafię sobie wyobrazić tego co w tym pliku może być nie tak, że stream się wykrzacza.
via Wykop Mobilny (Android)
  • 0
@w_o_w: nie wiem. Ale każdy program rzuca OOM. Spróbuję to jutro wykminić. Wiem że StreamWriter może rzucić OOM gdyby wczytał bardzo bardzo długą linie.... I na razie tylko to mi przychodzi do głowy. W pewnym momencie nie ma już nowych linii i mamy oom
via Wykop Mobilny (Android)
  • 0
@MikelThief: bo analiza ilości linii poprzez wczytywanie porcji Streamem i analiza wystąpień znaków końca linii przechodzi. Dzielenie pliku na linię zawsze na innych programów daje oom. Na bajty nie