-
141. Data: 2021-09-04 20:07:25
Temat: Re: rzadki bład w programie w C++
Od: Maciej Sobczak <s...@g...com>
> W Europejskiej kulturze kierunek tekstu to jest "od lewej do prawej, od góry do
dołu".
Europejska kultura nie nakazuje używania tekstu w programowaniu. Jakoś w elektronice
nie nakazała.
> ale chyba zawsze jest "z góry na dół".
>
> Może ma to związek z grawitacją,
Ja tam nie wiem. Ale jak idę i patrzę pod nogi albo jak jadę rowerem albo samochodem,
to "konsumuję treść" na drodze w drugą stronę. I gdybym miał coś czytać na
rozwiniętym papierze toaletowym, to raczej wolałbym go czytać idąc do przodu, niż do
tyłu.
Czytanie z góry na dół miało sens jak się cały pergamin mieścił przed oczami. A jak
ktoś ma N tysięcy linii w pliku to już ta ergonomia nie działa.
> i z tym, że jesteśmy uczeni, że rzeczy "same z siebie" raczej ciągnie w dół, niż do
góry?
No właśnie. Jeśli rzeczy ciągnie w dół, np. jak coś spada za oknem, to najpierw
zobaczymy ich dolny koniec a potem górny. Dlaczego nie moglibyśmy tak czytać długich
tekstów?
> Albo że nie trzymasz programu w ogóle w plikach, tylko to są obiekty w pamięci,
Przecież pisałem o modelowaniu.
> Większość środowisk "hipertekstualizuje" programy w tym sensie, że można np.
kliknąć na symbol, żeby przejść do jego definicji.
> Nie spotkałem się z taką możliwością u swojego papieru toaletowego.
Nie klikaj papieru toaletowego!
--
Maciej Sobczak * http://www.inspirel.com
-
142. Data: 2021-09-04 20:38:46
Temat: Re: rzadki bład w programie w C++
Od: Maciek Godek <g...@g...com>
sobota, 4 września 2021 o 20:07:26 UTC+2 Maciej Sobczak napisał(a):
> > W Europejskiej kulturze kierunek tekstu to jest "od lewej do prawej, od góry do
dołu".
> Europejska kultura nie nakazuje używania tekstu w programowaniu. Jakoś w
elektronice nie nakazała.
Prawda.
Kiedyś "się programowało" za pomocą kabli, a później - dziurkując karty.
Ale raczej nikt nie chciałby wracać do tych czasów, i większość osób woli pisać
tekst.
I chyba jeszcze nic lepszego od tekstu nie wymyślono.
(Co nie znaczy, że się nie da.)
> > ale chyba zawsze jest "z góry na dół".
> >
> > Może ma to związek z grawitacją,
> Ja tam nie wiem. Ale jak idę i patrzę pod nogi albo jak jadę rowerem albo
samochodem, to "konsumuję treść" na drodze w drugą stronę. I gdybym miał coś czytać
na rozwiniętym papierze toaletowym, to raczej wolałbym go czytać idąc do przodu, niż
do tyłu.
> Czytanie z góry na dół miało sens jak się cały pergamin mieścił przed oczami. A jak
ktoś ma N tysięcy linii w pliku to już ta ergonomia nie działa.
Tak, podobny problem jest przy pisaniu blogów i rzeczy tego rodzaju.
Kiedy pracuję nad swoim środowiskiem, to mam tam pliczek "TODO",
na którym prawie każdego dnia wypisuję sobie listę rzeczy, którymi
chcę się zajmować.
Zawsze nowe wpisy pojawiają się na samej górze. Ale jak już się pojawią,
to kolejne linie są coraz niżej i niżej.
Wydaje mi się, że jest w tym jakaś niespójność.
> > i z tym, że jesteśmy uczeni, że rzeczy "same z siebie" raczej ciągnie w dół, niż
do góry?
> No właśnie. Jeśli rzeczy ciągnie w dół, np. jak coś spada za oknem, to najpierw
zobaczymy ich dolny koniec a potem górny. Dlaczego nie moglibyśmy tak czytać długich
tekstów?
Może dlatego, że zbyt szybko by spadały, i nie zdążylibyśmy doczytać.
No i ktoś musiałby się wspinać na dach, żeby je dla nas zrzucać.
-
143. Data: 2021-09-08 17:28:36
Temat: Re: rzadki bład w programie w C++
Od: Robert Magdziarz <r...@r...e-kei.pl>
Mam jeszcze pewien problem z moim programem. Otóż wywołuję funkcję regex_search(line,
matches, re1) i jeśli wartością line jest długi tekst arabskich znaków to dostaję
"Segmentation fault" w wierszu 204 pliku regex.h:
const __ctype_type& __fctyp(use_facet<__ctype_type>(_M_locale));
Co mam z tym zrobić?
-
144. Data: 2021-09-09 09:57:09
Temat: Re: rzadki bład w programie w C++
Od: Maciek Godek <g...@g...com>
środa, 8 września 2021 o 17:28:37 UTC+2 Robert Magdziarz napisał(a):
> Mam jeszcze pewien problem z moim programem. Otóż wywołuję funkcję
regex_search(line, matches, re1) i jeśli wartością line jest długi tekst arabskich
znaków to dostaję "Segmentation fault" w wierszu 204 pliku regex.h:
> const __ctype_type& __fctyp(use_facet<__ctype_type>(_M_locale));
> Co mam z tym zrobić?
Najlepiej wyizolować minimalny przypadek generujący błąd i wysłać bug reporta do
dostawcy tej biblioteki, upewniwszy się, że korzystasz z najnowszej dostępnej wersji.
Domyślam się, że regex_search pochodzi z biblioteki standardowej C++ - w takim
przypadku raport powinien pójść do twórcy kompilatora.
Jeżeli natomiast chcesz rozwiązać swój problem, to najprostsze, co możesz zrobić, to
spróbować zmienić kompilator,
np. jeżeli używasz GCC, to użyj clang albo Visual C++, i zobacz czy to pomaga. (No i
zawsze używaj raczej najnowszych wersji, bo w nich błąd mógł już zostać poprawiony)
Jeżeli nie pomaga, ale masz dostępne źródła biblioteki, to możesz spróbować
zdebugować samemu.
(Tyle że biblioteki standardowe C++ są z reguły mocno "szabloniaste" i warstwy
abstrakcji, przez które trzeba się przedzierać, potrafią być skuteczną barierą dla
takich prób. Ja w każdym razie bałbym się iść tą drogą)
-
145. Data: 2021-09-09 19:58:38
Temat: Re: rzadki bład w programie w C++
Od: Robert Magdziarz <r...@r...e-kei.pl>
A co sądzisz o pomyśle użycia innej biblioteki regex np. boost?
-
146. Data: 2021-09-09 21:47:01
Temat: Re: rzadki bład w programie w C++
Od: Maciek Godek <g...@g...com>
czwartek, 9 września 2021 o 19:58:39 UTC+2 Robert Magdziarz napisał(a):
> A co sądzisz o pomyśle użycia innej biblioteki regex np. boost?
Można spróbować (choć typowo implementacje z boost "awansują" to biblioteki
standardowej, i mogą mieć te same problemy)
Ale chyba Qt daje też swoje regexy?
-
147. Data: 2021-09-10 07:56:10
Temat: Re: rzadki bład w programie w C++
Od: Robert Magdziarz <r...@r...e-kei.pl>
czwartek, 9 września 2021 o 21:47:02 UTC+2 Maciek Godek napisał(a):
> Można spróbować (choć typowo implementacje z boost "awansują" to biblioteki
standardowej, i mogą mieć te same problemy)
funkcje boost regex wywołują std regex?
> Ale chyba Qt daje też swoje regexy?
tak, ale kompiluję do dwóch programów wykonywalnych: jeden cmd-line (bez Qt), drugi
GUI (z Qt), w obu programach potrzebuje regex
-
148. Data: 2021-09-10 09:26:31
Temat: Re: rzadki bład w programie w C++
Od: Maciek Godek <g...@g...com>
piątek, 10 września 2021 o 07:56:11 UTC+2 Robert Magdziarz napisał(a):
> czwartek, 9 września 2021 o 21:47:02 UTC+2 Maciek Godek napisał(a):
> > Można spróbować (choć typowo implementacje z boost "awansują" to biblioteki
standardowej, i mogą mieć te same problemy)
> funkcje boost regex wywołują std regex?
Nie. Biblioteka boost ma dość szczegolne miejsce w C++owym ekosystemie w tym sensie,
że często jest tak, że komponenty z tej biblioteki stają się składnikami biblioteki
standardowej w kolejnych rewizjach standardu C++.
Dlatego jest spora szansa, że jeżeli użyjesz boost zamiast std, to efektywnie
będziesz wywoływał taki sam kod.
Ale spróbować oczywiście można.
> > Ale chyba Qt daje też swoje regexy?
> tak, ale kompiluję do dwóch programów wykonywalnych: jeden cmd-line (bez Qt), drugi
GUI (z Qt), w obu programach potrzebuje regex
Kwestia jest taka, czy ten program w linii komend używasz na systemie, na którym jest
dostępna biblioteka Qt.
Jeżeli tak, to nie powinno być problemu - aplikacje konsolowe mogą używać składników
Qt (np. kontenerów albo właśnie regexów). Szybko wyguglany przykład:
https://lubby.org/ebooks/qtconsoleapp2/qtconsoleapp2
.html
Ewentualnie, jeżeli biblioteka Qt nie jest dostępna na systemie docelowym (albo nie
wiesz, czy jest dostępna), możesz zlinkować z Qt statycznie, i wtedy linker
wydobędzie z Qt wszystkie komponenty niezbędne do działania Twojego programu (tylko
wówczas problemem może być ewentualnie rozmiar pliku wykonywalnego)
-
149. Data: 2021-09-10 09:59:09
Temat: Re: rzadki bład w programie w C++
Od: Robert Magdziarz <r...@r...e-kei.pl>
piątek, 10 września 2021 o 09:26:32 UTC+2 Maciek Godek napisał(a):
> > > Ale chyba Qt daje też swoje regexy?
> > tak, ale kompiluję do dwóch programów wykonywalnych: jeden cmd-line (bez Qt),
drugi GUI (z Qt), w obu programach potrzebuje regex
> Kwestia jest taka, czy ten program w linii komend używasz na systemie, na którym
jest dostępna biblioteka Qt.
> Jeżeli tak, to nie powinno być problemu - aplikacje konsolowe mogą używać
składników Qt (np. kontenerów albo właśnie regexów).
> rozważę to
>
> Ewentualnie, jeżeli biblioteka Qt nie jest dostępna na systemie docelowym (albo nie
wiesz, czy jest dostępna), możesz zlinkować z Qt statycznie, i wtedy linker
wydobędzie z Qt wszystkie komponenty niezbędne do działania Twojego programu (tylko
wówczas problemem może być ewentualnie rozmiar pliku wykonywalnego)
> ZTCW za sprzedawanie programu z linkowaniem statycznym trzeba płacić, a ja chcę
używać Qt bezpłatnie i sprzedawać swój program
-
150. Data: 2021-09-21 11:59:02
Temat: Re: rzadki bład w programie w C++
Od: Robert Magdziarz <r...@r...e-kei.pl>
Udało mi się znowu wygenerować kilka razy przypadek strs=="" z wiersza poleceń.
Niestety program uruchomiony pod VSCode z debugowaniem (ten sam exec i te same
argumenty i te same dane wejściowe) daje strs!="".
Jak to wytłumaczyć?