Potrzebna pomoc z poleceniami Aspell'a

Mam 4 możliwości: UTF-8 z i bez Bom ANSII oraz ISO.
Zaraz wypróbuję.
Zrobiłem to też innym programem, a tam działa tylko UTF-8 z Bom.

Ty musisz wiedzieć jak masz zakodowany plik. W Linuksie często file plik powie Ci jaka jest strona kodowa. Windows jest mi obcy.

Działo tylko ISO. Jest OK. Wynik jest trochę inny niż z Balabolki
chociaż, oby dwa korzystają ze słownika ASpell.
Wielkie dzięki.
Ale nic się nie nauczyłem.
list < A-Z.txt > wynik.txt
Moje rozumowanie że te strzałki > pokazują
kierunek przesyłania informacji jest błędne.
W przyszłości pozostaje robić wg. poznanego schematu.

Twoje rozumowanie jest z grubsza poprawne.
Tutaj znajdziesz podstawy podstaw tematu:
http://linuxcommand.org/lc3_lts0070.php
Wprawdzie dotyczy to Linuksa, ale idea jest ta sama dla CMD też. Artykuł nie porusza kilku przydatnych aspektów (standardowe wyjście błędu, przekierowania między nim a wyjściem “normalnym” i kilku innych), ale na Twoim etapie jest to coś co pozwoli załapać ideę.

list < A-Z.txt > wynik.txt
Ta idea mi nie wytłumaczy dlaczego list i wynik są po przeciwnych stronach
skoro to list ma przekazać zawartość do wyniku.

Po prostu tak zaprogramowano i tak ma być i nie ma tu nic do zrozumienia.
Trzeba wykuć na pałę a nie kierować się logiką.:grinning:

Nie, nie, nie :slight_smile:
aspell list < A-Z.txt traktuj jak jedną część, a > wynik.txt jak drugą.

Pierwszy < mówi o tym, żeby na standarowe wejście (stdin) aspella podać zawartość pliku A-Z. Następnie aspell ten plik przetwarza i na standarowe wyjśćie (stdout) wypisuje rezultat. Znak > mówi z kolei, żeby to standarowe wyjście przekierować do pliku wynik.txt.

Tutaj masz dokładniejszy opis co to te stanardowe strumienie są: https://pl.wikipedia.org/wiki/Standardowe_strumienie

Na moją logikę to powinno być taka kolejność:
B:\A-Z.txt > list > B:\wynik.txt

a, że ktoś wymyślił by opcje np. (list) były przed adresami, to tak musi już być. :grinning:

Jeśli zastosujesz informację, że znakiem “>” przekierowujemy standarowe wyjście w inne miejsce to Twoja logika się załamuje :slight_smile:

Bo popatrz, to co napisałeś B:\A-Z.txt > list
już na tym etapie jest złe, bo nie ma tu żadnego wyjścia (B:\A-Z.txt to ścieżka, a nie program), a jeśli by to “poprawić” i dodać jakiś program, np
cat B:\A-Z.txt > list
to wtedy, zgodnie z tym co “>” robi miałbyś odpowiednik “wypisz zawartość pliku B:\A-Z.txt na standarowe wyjście i przekieruj je do pliku list”.

Tekst wejściowy kieruję się na funkcje list (nie musi być wyświetlany w oknie, może być opcja bez wyświetlania), a następnie na wynik.txt.

Gdybym to ja tworzył to oprogramowanie, tak by to skonstruował.
Każdy to może inaczej widzieć :grinning:

Co chwilę spotykam się z bezmyślnymi oprogramowaniami np. przy rejestracji (zakładaniu konta).
Ręce się załamują. Jak ktoś coś tworzy, to powinien to ogarnąć.
Ja nie zajmuję się DOS’em tylko sporadycznie więc nie potrzebuję aż tak dogłębnej wiedzy.
Gdy pójdę coś zjeść do restauracji to czy zaraz muszę wiedzieć,
jak to się to danie przyrządza ze szczegółami?

Po pierwsze to jest bardzo dobrze zaprojektowane. Sprawdza się od kilkudziesięciu lat i jest niezwykle wygodne i powszechnie stosowane. Jeszcze nie spotkałem się z zarzutem nielogiczności.

Po drugie nie ma funkcji list, to parametr programu aspell. Inny może nie mieć takiego parametru (relanie niemal żaden nie ma). Dane kierujesz do programu, nie do funkcji czy parametru.

Jak są przyrządzane dania wiedzieć nie musisz, bo ich nie gotujesz. W wypadku tego co relizowałeś z użyciem aspella to Ty byłeś kucharzem więc tak, powinieneś wiedzieć jak to działa.

-l|list produce a list of misspelled words from standard input
zamiast list mogę wpisać -l?

List wydobywa plik bad.
A jak wyodrębnić te, które nie są bad?

To już zagadnienie filozoficzne.
Jak gotuję wodę na herbatę czy jajko to muszę wszystko wiedzieć na temat wody czy jajka?

W moje wersji aspella nie ma opcji -l, ale być może w Twojej jest. Jeśli tak to naturalnie możesz użyć.

List wydobywa plik bad.
A jak wyodrębnić te, które nie są bad

Nie wiem czy aspell ma taką opcję, a sprawdzać mi się nie chce. Jeśli nie ma to sprawa nadal jest prosta. Listę wszystkich słów do sprawdzenia masz w A-Z.txt, listę błędów masz w wynik.txt, teraz pozostaje zrobić różnicę tych 2 zbiorów.

Narzędzia, które Ci pomogą to diff, sort, uniq i inne (nie wiem czy są dostępne w Windows to raz a dwa, że można to zrobić na wiele sposobów więc użycie wszystkich tych narzędzi jednocześnie nie musi być konieczne).

Jak gotuję wodę na herbatę czy jajko to muszę wszystko wiedzieć na temat wody czy jajka?

Nie wszystko, ale całkiem sporo. Mniej więcej musisz znać temperaturę wrzenia wody, wiedzieć jak w ogóle ją podgrzać, znać czas gotowania jajaka i jeszcze sporo więcej.

A po co? Nie ugotuję się mi wtedy? Woda jak się gotuje to czajnik się sam wyłącza
a w garnku to pokrywka podskakuje. :grinning:

Ja do tego używam w Windowsie Edytora tekstu.
Cała sztuka, żeby wiedzieć jak :grinning:

Z żadnym edytorem tekstu nie pomogę, bo się na tym nie znam. Podałem Ci za to pomysł jak to zrobić więc możesz spróbować wykonać tę operację w narzędziu, które dla Ciebie jest wygodne.

A po co? Nie ugotuję się mi wtedy? Woda jak się gotuje to czajnik się sam wyłącza
a w garnku to pokrywka podskakuje

Aspell też sam się wyłączy jak skończy zadanie. Nie musisz znać też algorytmu jakim on realizuje te operacje wyszukiwania błędów. Ale musisz znać jego interfejs tak jak znać musisz interfejs czajnika (gdzie jest rącza? gdzie nalewa się wodę? gdzie uruchamia się proces grzania? itd).