-
PERL - Deleni textu
mam text a chci ho pomoci (asi) splitu rozdelit na dvojice znaku. chci se take vyhnout zacatkum a konvum slov. asi takhle:
Dnes je pekne pocasi.
chci aby mi to vratilo pole s hodnotami:
1. dn
2. ne
3. es
4. je
5. pe
6. ek
... atd
zjistuji frekvence znaku, dvojic a trojic. znaky uz mam, ale s temi dvojicemi nemuzu hnout :-(
-
skus si doodladovat nieco taketo...
Kód:
$string = "Dnes je pekne pocasi";
$string =~ s/ //g;
for ($i=0; $i < length($string); $i++) {
$cast[$i] = substr($string,$i,2);
}
alebo som to nepochopil spravne???
-
jo to je ono. akorat ze to ve 4. pruchodu udela dvojici sj, ale ja potrebuju aby nebral dvojice, kde je mezi pismeny mezera. coz snad nejak zvladnu, ale neni me uplne jasne co se deje zde: $string =~ s/ //g;
-
aha uz vim, to je ta substituce
-
tak potom cyklus v cykle. v tom vonkajsom to nasekat na pole stringov (slov) a v tom druhom to postupne tlacit do finalneho pola ako dvojznakove stringy...
nemam teraz na to cas ale rano sa Ti muozem na to skusit pozriet... ak to teda pocka..
-
nejak to zvladnu, snad, ale mam jinej problem, s diakritikou. zjistuju frekvence znaku v textu. ale nevim jak mam zjistit pocet napriklad š v textu, protoze jakmile nekde napisu š tak program proste nejede. problem bude asi nekde v kodovani. potreboval bych to nejak cely provozovat v Unicode ale nevim jak :-(
-
nuz, stym Ti ja osobne neporadim... ja s perlom fungujem na anglickych UNIXoch s anglickymi datami takze som zatial nic s takym niecim nerobil... myslim ale ak budes pouzivat nie znak "č" ale \276 alebo neviem aky kod ma to ktore pismeno tak by to mohlo a malo byt chodive...
-
zkus toto:
Kód:
#!/usr/bin/perl
## naimportujeme locale, a nastavime ho na ceske,
## s utf-8 (ale nevim jestli je ten název kódování dobře...
use locale;
use POSIX qw(locale_h);
$old_locale = setlocale(LC_CTYPE);
setlocale(LC_CTYPE, "cs_CZ.UTF8");
## tady je tvuj kod....
## zvratime locale na puvodni
setlocale(LC_CTYPE, $old_locale);
-
ok, diakritiku mam. ted dalsi problem:
mam textovy soubor a chci cely jeho obsah nacist do promenne. pouzivam toto: $string=<ZDROJ> kde zdroj je ten textak. ale pokud je v tom textaku nejaky enter tak mi to do te promenne nacte jen text po ten enter. jak mam dostat cely text do promenne? pres chop mi to nejak nejde. nebo zkousim nacist do pole jednotlivy radky a pak to joinovat do promenny ale nevim.
-
Kód:
open(AAA, "/tmp/file.txt");
@lines = <AAA>;
close(AAA);
for ($i = 0; $i <= $#lines; $i++) {
print $lines[$i];
}
popripade do toho cyklu si daj co potrebujes a rob to pre kazdy "riadok" zvlast... popripade to v tom cykle spoj
Kód:
for ($i = 0; $i <= $#lines; $i++) {
$ouptut = $output . " " . $lines[$i];
}
-
mam to krapet jinak ale beha to. jeste malej dotaz:
jak mam udelat aby uzivatel mohl zadat lib. textak jako vstup? ted to mam natvrdo takhle:
Kód:
OPEN (ROZ, "test.txt");
-
Kód:
print "zadaj nazov fajlu...";
$file = <STDIN>;
open(ROZ, $file);
...