🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

6 total messages Started by Borneq Mon, 23 Jan 2017 12:42
Trymowanie linii w pliku a znaki końca linii
#308991
Author: Borneq
Date: Mon, 23 Jan 2017 12:42
17 lines
1885 bytes
Visual Studio ma taką wadę że zostawia białe znaki na końcach linii w 
odróżnieniu od takiego środowiska jak CodeBlock.
Mam napisane narzędzie w Pascalu, które przegląda pliki wraz z 
podkatalogami, wczytuje plik do listy, trymuje, sprawdza czy musiał 
trymować i jak tak - zapisuje do pliku.
Teraz jednak pracuję nad projektem który używa gita oraz jest zarówno 
pod Linuksem jak i Windowsem. Niektóre pliki mają znaki końca plików 
Windows, inne Linuksa a nawet są chyba z mieszanymi (bo Visual Studio 
się czepia tego).
Gdy użyję mojego programu "trim.exe", wszystkie znaki linii będą 
windowsowe co jest źle, bo git stwierdzi że cały plik się zmienił.
Jak zrobić czytanie częściowo binarnie, aż do znaków \n i \r, które mogą 
być teoretycznie w jakiejś sekwencji \n\r\r\n, pamiętając linię oraz to 
co jest pomiędzy liniami, linię trymować a to co pomiędzy zapisywać bez 
zmian?
Jak zrobić w c++ czytanie katalogów z podkatalogami? Może z użyciem 
boost ale niekoniecznie.
Re: Trymowanie linii w pliku a znaki końca linii
#308993
Author: bartekltg
Date: Mon, 23 Jan 2017 13:50
30 lines
2354 bytes
On 23.01.2017 13:42, Borneq wrote:
> Visual Studio ma taką wadę że zostawia białe znaki na końcach linii w
> odróżnieniu od takiego środowiska jak CodeBlock.
> Mam napisane narzędzie w Pascalu, które przegląda pliki wraz z
> podkatalogami, wczytuje plik do listy, trymuje, sprawdza czy musiał
> trymować i jak tak - zapisuje do pliku.
> Teraz jednak pracuję nad projektem który używa gita oraz jest zarówno
> pod Linuksem jak i Windowsem. Niektóre pliki mają znaki końca plików
> Windows, inne Linuksa a nawet są chyba z mieszanymi (bo Visual Studio
> się czepia tego).
> Gdy użyję mojego programu "trim.exe", wszystkie znaki linii będą
> windowsowe co jest źle, bo git stwierdzi że cały plik się zmienił.
> Jak zrobić czytanie częściowo binarnie, aż do znaków \n i \r, które mogą
> być teoretycznie w jakiejś sekwencji \n\r\r\n, pamiętając linię oraz to
> co jest pomiędzy liniami, linię trymować a to co pomiędzy zapisywać bez
> zmian?
> Jak zrobić w c++ czytanie katalogów z podkatalogami? Może z użyciem
> boost ale niekoniecznie.


Słyszałeś o takim nowym wynalazku, wyszukiwarka w sieci, ale taka, która
działa. Google się toto nazywa.

http://stackoverflow.com/questions/10418975/how-to-change-line-ending-settings

I masz opis jak zusić gita by sam konwertował i wrzucał na dany system
taką wersje konca linii, jaka jesty tam wymagana.

pzdr
bartekltg
Re: Trymowanie linii w pliku a znaki końca linii
#308994
Author: Borneq
Date: Mon, 23 Jan 2017 14:10
12 lines
1653 bytes
W dniu 23.01.2017 o 14:50, bartekltg pisze:
> I masz opis jak zusić gita by sam konwertował i wrzucał na dany system
> taką wersje konca linii, jaka jesty tam wymagana.

To właśnie miałem kiedyś - pod Windows ustawionego gita aby na dysku 
zapisywał mi końce linii Windows a w repozytorium Linuksa. Ale ustawiłem 
by nie zmieniał, bo teraz działam zarówno tak że najpierw pod jednym 
systemem "git push" a pod drugim "git pull" a czasem wrzucam do katalogu 
dzielonego, tak że mam binarną kopię. Chyba najdoskonalszym rozwiązaniem 
byłby trimer nie niszczący znaków końca linii.
Chyba będę musiał czytać binarnie do znaków końca.
Jak najlepiej w c++ czytać katalogi z podkatalogami?
Re: Trymowanie linii w pliku a znaki końca linii
#308996
Author: bartekltg
Date: Mon, 23 Jan 2017 17:43
34 lines
2225 bytes
On 23.01.2017 15:10, Borneq wrote:
> W dniu 23.01.2017 o 14:50, bartekltg pisze:
>> I masz opis jak zusić gita by sam konwertował i wrzucał na dany system
>> taką wersje konca linii, jaka jesty tam wymagana.
>
> To właśnie miałem kiedyś - pod Windows ustawionego gita aby na dysku
> zapisywał mi końce linii Windows a w repozytorium Linuksa. Ale ustawiłem
> by nie zmieniał, bo teraz działam zarówno tak że najpierw pod jednym
> systemem "git push" a pod drugim "git pull" a czasem wrzucam do katalogu
> dzielonego, tak że mam binarną kopię.

Nic nie rozumiem.

>  Chyba najdoskonalszym rozwiązaniem
> byłby trimer nie niszczący znaków końca linii.

Nie, najdoskonalsze rozwiązanie masz w linku.
Repozytorium jest w wersji unixowej. Archiwa są w unixowej.
Ściągając na system z windowsem dokleja co trzeba i tam masz windowsową.
Edytujesz, wysyłąsz w górę, konwertuje do wer5sji unixowej.


> Chyba będę musiał czytać binarnie do znaków końca.

Ale chcesz rozwiązać problem czy się pobawić?


 > Jak najlepiej w c++ czytać katalogi z podkatalogami?

C++ 17 filesystem (chyba jeszcze nie wyszlo z 'skeperymentalnego')
boost -> filesystem (to samo, w bibliotece)

pzdr
bartekltg
Re: Trymowanie linii w pliku a znaki końca linii
#308998
Author: Borneq
Date: Mon, 23 Jan 2017 18:05
7 lines
1362 bytes
W dniu 23.01.2017 o 18:43, bartekltg pisze:
> Nie, najdoskonalsze rozwiązanie masz w linku.
> Repozytorium jest w wersji unixowej. Archiwa są w unixowej.
> Ściągając na system z windowsem dokleja co trzeba i tam masz windowsową.
> Edytujesz, wysyłąsz w górę, konwertuje do wer5sji unixowej.

Masz rację, jednokrotna duża zmiana a potem już są w porządku
Re: Trymowanie linii w pliku a znaki końca linii
#309000
Author: slawek
Date: Thu, 26 Jan 2017 13:58
11 lines
1386 bytes
On Mon, 23 Jan 2017 15:10:23 +0100, Borneq 
<borneq@antyspam.hidden.pl> wrote:
> Jak najlepiej w c++ czytać katalogi z podkatalogami?

To proste. Jednak...

Czy nie lepiej jakby ten twój program czytał sobie listę plików 
przygotowaną wcześniej przez ls lub dir?

Omijasz kupę problemów. Ew. możesz to wrzucić w batch'a. I działa z 
każdym OS.
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