Znak nowej linii w pliku CSV

Odpowiedz Nowy wątek
2017-02-17 15:48
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ę.


"Jeżeli chcesz odkryć coś ważnego, pracuj tylko nad pytaniami, z których można wyprowadzić przewidywania eksperymentalne." Richard Feynman

Pozostało 580 znaków

2017-02-17 15:52
0

string+#10#13;

edytowany 2x, ostatnio: piusik, 2017-02-17 15:58

Pozostało 580 znaków

2017-02-17 15:55
Uczynny Kaczor
0

Pokaż przykładowe pliki

Pozostało 580 znaków

2017-02-17 15:58
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 :/


"Jeżeli chcesz odkryć coś ważnego, pracuj tylko nad pytaniami, z których można wyprowadzić przewidywania eksperymentalne." Richard Feynman
edytowany 1x, ostatnio: przemek_l, 2017-02-17 16:00

Pozostało 580 znaków

2017-02-17 16:05
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 ?

edytowany 4x, ostatnio: DibbyDum, 2017-02-17 16:28
zauważyłem :) - przemek_l 2017-02-17 16:06
Chyba Ci się C# z Delphi pomyliło. - ŁF 2017-02-20 15:44

Pozostało 580 znaków

2017-02-20 15:38
0

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


"Jeżeli chcesz odkryć coś ważnego, pracuj tylko nad pytaniami, z których można wyprowadzić przewidywania eksperymentalne." Richard Feynman

Pozostało 580 znaków

2017-02-20 15:49
ŁF
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!).


edytowany 1x, ostatnio: ŁF, 2017-02-20 15:53

Pozostało 580 znaków

2017-02-20 16:15
0

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

Pozostało 580 znaków

2017-02-20 16:43
Uczynny Kaczor
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ć.

Pozostało 580 znaków

2017-02-21 00:55
Krwawy Ogrodnik
0

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

Pozostało 580 znaków

2017-02-21 01:10
Uczynny Kaczor
0

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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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