x-kom hosting

[Delphi] Zmiana liter w memo

Vasir
utworzono
utworzono

Ahm.

Potrzebuje jakiejś wskazówki dotyczącej tematu.

Ma to wyglądać mniej/więcej tak(przykład):

Memo1.lines:=agagagagagagagagaga (Oo)

po kliknięciu przycisku ma być..

Memo1.lines:=acac...

Czyli co konkretnie ma robić program:

1.Wczytywać do memo plik tekstowy. (zrobine)

2.Konwertować znaki typu ż,ż,ą na z,z,a.

3.Zapisywać memo do pliku tekstowego (zrobione)

Jakieś propozycje?

luq
komentarz
komentarz

Jeśli dobrze rozumiem, tablica typu:

ą => aż => z

W PHPie bym to zrobił w tablicy asocjacyjnej, z Delphim miałem raczej krótką przygodę i chyba nie ma czegoś takiego a więc 2 tablice from i to z odpowiadającymi sobie znakami.

Vasir
komentarz
komentarz

mało zrozumiałem z twojej wypowiedzi... można prościej?

luq
komentarz
komentarz

Dawno nie pisałem w językach nie będących PHPem i JSem, mam nadzieję że kod zrozumiesz ;)

    $from = array( 'ą', 'ę', 'ź' );    $to   = array( 'a', 'e', 'z' );    $text = 'się źle zrobiło';    $cnt = strlen( $text );    for( $i = 0; $i < $cnt; $i++ ){        if( in_array( $text{$i}, $from ) ){            $text{$i} = $to[ array_search($text{$i}, $from) ];        }    }    echo $text; // da - "sie zle zrobiło"

Po prostu lecisz po kolejnych literkach tekstu, jeśli jest ona zawarta w $from zamieniasz ją na odpowiadającą z $to

Vasir
komentarz
komentarz (edytowane)

Po Delphiemu tak jakoś mi nie idzie... array może mieć tylko 2 wartośći początkową i końcową z przykładu twojego udało mi się jedynie zrobić:

from :array['ą'..'ż'] of  string

przecinki odpadają nie wiedzieć czemu...

Narazie jedyny postęp to:

text:=memo2.Lines.Text;i := pos('ą', text ) 

Teraz myślę jak tą pozycje wykorzystać

Edit:

memo2.Lines[pos('ą', memo2.lines.text)] := ('a');

Teoretycznie powinno działać, ale.. nie działa przy wczytanym tekscie. Jeżeli w memo cokolwiek jest to nie działa. Jeżeli memo jest puste dodaje 'a'. Jakiś pomysł?

Edit2:

Wpadłem na kolejny "genialny pomysł" -.-'. Patrząc na notatnik windowsa... możnaby to spróbować zrobić na zasadzie zaznacz literę i dopiero zamień, ale jeszcze nie wiem jak to zrobić Oo.

luq
komentarz
komentarz
Po Delphiemu tak jakoś mi nie idzie... array może mieć tylko 2 wartośći początkową i końcową z przykładu twojego udało mi się jedynie zrobić:

Nieprawda. Jeśli by tak było to byłoby to spore ograniczenie językowe.

from :array[0..2] of  char;form[0] := 'ą';form[1] := 'ę';form[2] := 'ź';

Pewnie jakoś w taki sposób też da się to zapisać:

from :array[0..2] of  char;form := ['ą', 'ę', 'ź']; // w sensie, że w jednej linijce, nie wiem czy w O. Pascalu się to tak zapisuje

Tak btw. mylisz deklarację i definicję.

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.