Znak nowej linii w pliku CSV

0

Witam,

Mam taki problem , generuje plik CSV do programu EasyUploader i tutaj pojawia się wałek , jedna z kolumn wymaga podawania parametrów po przez oddzielenie znakami nowej linii.
Kombinowałem z
enter_sign = string.Format("{0}", '\x0a');

oraz

string enter_sign = Environment.NewLine;

I kilka innych przypadków i problem polega na tym że w pliku po otwarciu zamiast kilku linii w jednej komórce zostają dodane kolejne rzędy.
Dowcip polega na tym że spreparowałem ten plik ręcznie gdzie parametry są oddzielone znakami nowej linii ale korzystałem z OpenOffice , kiedy otworzyłem plik w hexedytorze sprawdziłem jakie znaki są stosowane do wstawiania nowej linii i jest to \x0a ale kiedy mój program wstawia \x0a to są wstawiane nowe rzędy , w tym momencie już wale głową w ścianę.
Ktoś się orientuje co może być przyczyną takiego stanu rzeczy ? Jedyne co mi przychodzi do głowy to sytuacja w której open office zapamiętuje który plik wygenerował i wie że ma traktować znaki nowej linii jako nowe linie w jednej komórce a nie kolejne rzędy.

Za pomoc z góry dziękuję.

0

string+#10#13;

0

Pokaż przykładowe pliki

0

string+'#10#13' nic nie daje , mam po liniach BS i CR ale open office dalej widzi znak nowej linii jako tworzenie nowego rzędu.

Sprawdzałem w hexedytorze to co generuje mi apka jest identyczne z tym co generuje openoffice , z tą różnicą że moje nie działa a ich tak :/

0

pomyliłem się i potem poprawilem ---musi być bez znakow ' '
string +#10#13 a wcześniej napisałem string +'#10#13';

a w czym piszesz?

kodowanie pliku ?

0

Kodowanie jest ok używam windowsowego w obu przypadkach :/.

0

Nowa linia pod Windows składa się z dwóch znaków - NL (inaczej LF - line feed, 10, \n) oraz CR (carriage return, 13, \r).
Zatem tekst, który ma być w osobnej linijce będzie kończyć się znakami \r\n.

string+'#10#13' to chyba żart - przecież char (pojedyncze apostrofy) przyjmuje tylko jeden znak, a #10#13 to znaków sześć. Poza tym w Delphi i TP to nie #10#13, tylko #13#10 (kolejność ma znaczenie!).

0

Ale dlaczego piszecie o #13#10, skoro autor mówi o C#, czyli o jakisString = jakisString + "\r\n"?

0

Po prostu wrzuć 2 przykładowe pliki. Jeden z OpenOffice a drugi z twojego programu. Wtedy zamiast zgadywać będziemy mogli je spokojnie porównać.

0

Ok, muszę się dowiedzieć czy mogę :) , jak by nie patrzeć plik wynikowy jest klauzulą poufności chroniony ;).

0

Wrzuć spreparowany plik. Bez poufnych/autentycznych danych, byleby występował ten błąd.

1

czemu do obslugi CSV piszecie cos wlasnego?

https://www.nuget.org/packages/CsvHelper/

0

Nie tyle własnego co jest oparte na jakimś kodzie który działa idealnie tak długo jak długo nie pojawia się enter w konkretnej komórce.

0

Tutaj plik przykładowy ze znakami nowej linii windowsa, rozwala się wszystko.
Te kilka rzędów gdzie jest liczba średnica etc powinny być jedną komórką ( B bo daj że ) zamiast tego wszystko się rozwala.
Jeśli preparuje plik ręcznie w OpenOffice to entery nie stają się osobnymi rzędami ( uprzedzając , plik wtedy jest plikiem CSV , zamykam go i otwieram bez problemu ).
Plik wynikowy w założeniu ma być dla programu easyuploader v3.

0

no to znaczy ze dziala teraz zle.

Nadal sam skorzystalbym z CSVHelpera. Napisalbym dla tej kolumny odpowiednie mapowanie i... tyle

Roboty masz na godzine jezeli nie znasz tej libki, a Ty juz od wczoraj walczysz z tym

Szanuj swoj czas ;)

0

Problem rozwiązany , używałem złej funkcji zapisu , tylko zagadką jest dla mnie że plik wynikowy w tej chwili w hex edytorze wygląda tak samo jak poprzednio O_O z tą różnica że nagle open office sobie z nim radzi prawidłowo.
Nic już z tego nie rozumiem ....

1

@przemek_l Ale pliki nie są takie same tylko podobne. Sprawdziłem plik, który wrzuciłeś. Jeżeli w polu używasz znaku nowej linii, cudzysłowu lub separatora pól (w twoim przypadku średnik), to całą wartość musisz wziąć w cudzysłów (każdy cudzysłów musisz dodatkowo zamienić na dwa cudzysłowy), a ty tego nie robisz.
Jeżeli to

Stan | Nowy
Liczba felg w ofercie | 4 szt.
Średnica felgi | �rednica"
Szerokość felgi |Szerokosc"
Rozstaw śrub |Rozstaw #1
Producent Felg |Producent
Odsadzenie |ET
Otwór centralny | wybierz
Typ samochodu | Samochody osobowe 
Marka samochodu | auta

miało być w jednej komórce to powinno wyglądać tak:

"Stan | Nowy
Liczba felg w ofercie | 4 szt.
Średnica felgi | �rednica""
Szerokość felgi |Szerokosc""
Rozstaw śrub |Rozstaw #1
Producent Felg |Producent
Odsadzenie |ET
Otwór centralny | wybierz
Typ samochodu | Samochody osobowe 
Marka samochodu | auta"

Dodatkow w niektórych miejscach zamiast ś jest ten znak

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