Groups | Search | Server Info | Login | Register


Groups > pl.comp.lang.asm > #39

Re: Konwerter txt do UTF 8

From "Bogdan (bogdro)" <bogdan@poczta.gazeta.pl>
Newsgroups pl.comp.lang.asm
Subject Re: Konwerter txt do UTF 8
Date 2022-03-26 17:03 +0100
Organization Aioe.org NNTP Server
Message-ID <t1ndg2$tgp$1@gioia.aioe.org> (permalink)
References (4 earlier) <623a42c7$0$464$65785112@news.neostrada.pl> <623b0844$0$493$65785112@news.neostrada.pl> <623c6b4b$0$465$65785112@news.neostrada.pl> <t1i94p$1ijs$1@gioia.aioe.org> <623e3867$0$480$65785112@news.neostrada.pl>

Show all headers | View raw


W dniu 25.03.2022 o 22:47, Kamil pisze:
> Użytkownik "Bogdan (bogdro)"  napisał:
> 
>> 1) czytasz plik znak po znaku (albo od razu cały plik do bufora w 
>> pamięci, przez który potem przechodzisz znak po znaku),
> 
>> 2) jeśli odczytanym znakiem nie trzeba się zajmować, przepisujesz go 
>> do bufora wyjściowego bez zmian,
> 
>> 3) jeśli odczytany znak trzeba zmienić, zapisujesz do bufora 
>> wyjściowego "to, co trzeba",
> 
>> 4) do pliku zapisujesz bufor wyjściowy jako całą zawartość, bez 
>> przeskakiwania co gdzie trzeba zmienić.
> 
> Opisałeś dokładnie to samo co ja wcześniej. To jest proste i ładnie 
> działa dla jednego znaku. Natomiast potencjalnie w pliku tych znaków 
> jest 18. Procedura podczas jednego przebiegu wyszukuje jeden znak. Nie 
> może więcej, bo zmienią się liczniki. Nie wiem, czy opisałem to 
> zrozumiale. Jeśli by procedura mogła szukać wszystkich znaków trzeba 
> by było wprowadzić zmienne zawierające wartości liczników, korygowane 
> po każdym znalezionym znaku. To skomplikowane i niepewne.
> 
> Pzdr


  Tak, opisałeś zrozumiale. Tzn. wiem, o jaki problem chodzi. Tyle, 
ile rozumiem, to to, że masz bufor z danymi z pliku, zmieniasz znak na 
encję HTML, ale to powoduje "przesunięcie" się pozostałych znaków z 
pliku, więc musisz szukać pod innymi numerami. Tak by to było, gdyby 
używać jednego i tego samego bufora na wejście i wyjście i gdyby 
przerabiać jedną literę na raz.
  Ja zaś proponuję 2 OSOBNE bufory. Pierwszy, wejściowy, zawiera 
odczytane dane z pliku (lub po prostu czytasz ten plik na bieżąco). 
Chodzisz w nim znak po znaku. Jak znajdziesz znak, który trzeba 
zamienić (jeden z 18), to do bufora wyjściowego zapisujesz podmienioną 
wersję, podbijasz indeks/wskaźnik/licznik wyjściowy o 6 (długość encji 
HTML), a wejściowy - ciągle o 1. Ma to, według tego pomysłu, wyglądać 
mniej-więcej tak:

wejście: aąbcć
indeks do bufora/pliku wejściowego: 0, 1, 2, 3, 4, 5

wyjście: a&#AAA;bc&#AAA;
indeks do bufora/pliku wyjściowego: 0, 1, 7, 8, 9, 15

  No i drugą istotną ideą jest to, że każdy przeczytany znak 
porównujesz z 18 wzorcami i w związku z tym od razu generujesz 
kompletny wynik, zamiast najpierw zamieniać wszystkie "ą", potem 
wszystkie "ć" itd., bo to faktycznie oznacza problemy z indeksami, 
cofanie się w buforze, zamazywanie sobie samemu danych itd.

-- 
Pozdrawiam/Regards - Bogdan                     (GNU/Linux & FreeDOS)
Kurs asemblera x86 (DOS, GNU/Linux):            http://bogdro.evai.pl
Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
www.Xiph.org www.TorProject.org  Soft(EN): http://bogdro.evai.pl/soft

Back to pl.comp.lang.asm | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Konwerter txt do UTF 8 "Kamil" <nospam@tlen.pl> - 2022-03-21 15:28 +0100
  Re: Konwerter txt do UTF 8 "Bogdan (bogdro)" <bogdan@poczta.gazeta.pl> - 2022-03-22 13:18 +0100
    Re: Konwerter txt do UTF 8 "Kamil" <nospam@tlen.pl> - 2022-03-22 15:27 +0100
      Re: Konwerter txt do UTF 8 "Bogdan (bogdro)" <bogdan@poczta.gazeta.pl> - 2022-03-22 21:37 +0100
        Re: Konwerter txt do UTF 8 "Kamil" <nospam@tlen.pl> - 2022-03-22 22:42 +0100
          Re: Konwerter txt do UTF 8 "Kamil" <nospam@tlen.pl> - 2022-03-23 12:45 +0100
            Re: Konwerter txt do UTF 8 "Kamil" <nospam@tlen.pl> - 2022-03-24 13:59 +0100
              Re: Konwerter txt do UTF 8 "Bogdan (bogdro)" <bogdan@poczta.gazeta.pl> - 2022-03-24 18:18 +0100
                Re: Konwerter txt do UTF 8 "Kamil" <nospam@tlen.pl> - 2022-03-25 22:47 +0100
                Re: Konwerter txt do UTF 8 "Kamil" <nospam@tlen.pl> - 2022-03-25 23:03 +0100
                Re: Konwerter txt do UTF 8 "Bogdan (bogdro)" <bogdan@poczta.gazeta.pl> - 2022-03-26 17:03 +0100
                Re: Konwerter txt do UTF 8 "Kamil" <nospam@tlen.pl> - 2022-03-26 17:38 +0100
                Re: Konwerter txt do UTF 8 "Bogdan (bogdro)" <bogdan@poczta.gazeta.pl> - 2022-03-27 13:17 +0200
                Re: Konwerter txt do UTF 8 "Kamil" <nospam@tlen.pl> - 2022-03-28 09:36 +0200
                Re: Konwerter txt do UTF 8 "Bogdan (bogdro)" <bogdan@poczta.gazeta.pl> - 2022-03-28 18:59 +0200
                Re: Konwerter txt do UTF 8 "Kamil" <nospam@tlen.pl> - 2022-03-29 17:50 +0200
            Re: Konwerter txt do UTF 8 "Radoslaw Szwed" <radekszwed@pochta.fm> - 2022-03-25 06:29 +0100
              Re: Konwerter txt do UTF 8 "Kamil" <nospam@tlen.pl> - 2022-03-25 22:37 +0100

csiph-web