E' possibile comprimere una stringa?![]()
2. Se avessi un testo tipo questo:
aaaaaaaaaa bbbaaaccccc
potrei fare in modo che venga traadoto cosi'?
a x 10 b x 3 c x 5
Insomma idee su funzioni che mi permettono di comprimere e sintetizzare una strainga?
E' possibile comprimere una stringa?![]()
2. Se avessi un testo tipo questo:
aaaaaaaaaa bbbaaaccccc
potrei fare in modo che venga traadoto cosi'?
a x 10 b x 3 c x 5
Insomma idee su funzioni che mi permettono di comprimere e sintetizzare una strainga?
upp vi prego!!!!!!!!![]()
vi scongiuro![]()
Non riesco a trovare e funzioni (tutte) relative alle stringhe
se poi ti servono conteggi parziali e non complessivi è da rivedere.Codice PHP:$stringa = str_replace(' ','',$stringa);
$caratteri = preg_split('//', $stringa, -1, PREG_SPLIT_NO_EMPTY);
print_r(array_count_values($caratteri));
virgole, spazi o altri caratteri come li inserisci nel compresso ?Originariamente inviato da Noffinganzo92
E' possibile comprimere una stringa?![]()
2. Se avessi un testo tipo questo:
aaaaaaaaaa bbbaaaccccc
potrei fare in modo che venga traadoto cosi'?
a x 10 b x 3 c x 5
hai la Zlib con gzip, bzip, volendo hai classi per WinZip e per finire hai LZMA della 7Zip ... questi sono compressoriOriginariamente inviato da Noffinganzo92
Insomma idee su funzioni che mi permettono di comprimere e sintetizzare una strainga?![]()
no...a me interessava agire solo sulle dtringhe e non utilizzare gzip![]()
Prova in questo modo:
Così come è messa scrive "lettera"x"lunghezza" e la sostituzione avviene solo per le lettere e per ripetizioni maggiori di 1.Codice PHP:$string='aaaaaaaaaa bbbaaaccccc';
echo preg_replace('/([^\\W\\d])\\\\1+/e','"$1x".strlen("$0")',$string) ;
Ovviamente se hai anche numeri nelle stringhe dovresti aggiungere dei delimitatori ai valori sostituiti.
![]()
dA .. foto di viaggio
L'esperienza è il tipo di insegnante più difficile.
Prima ti fa l'esame, e poi ti spiega la lezione.
grazie!!!! Ora proverò!
Per fare in modo che vengano interpretati tutti i caratteri bisogna scrivere molto codice?
EDIT: vieni da trento?![]()
non mi sono spiegato bene![]()
Allora mettiamo che io abbia un file prova.txt
Lo apro, lo leggo e memorizzo tutto il contenuto in una var string.![]()
Poi riproduco ogni lettera doppia con un' altra formula...in modo che se sul txt c' è scritto
aaaaaaaaaaaaaaaaaaaaaaaaaa ecc... bbbbb
lo script lo elabora e da come output lo stesso codice, ma con una formula diversa....
ripeti a per x volte e poi b....
Casino? Mi sa che chiedo una cosa impossibile![]()
io non capisco a cosa serva, comunque la butto li ...
codice:function getChars(&$str) { $arr = $output = array(); $addChar = create_function('&$arr, $char', ' $length = count($arr) - 1; if($length > -1 && $arr[$length]["char"] == $char) $arr[$length]["times"]++; else array_push($arr, array("char"=>$char, "times"=>1)); return ""; '); preg_replace('/[^\a]/e', '$addChar($arr, "$0")', $str); for($i = 0, $length = count($arr); $i < $length; $i++) array_push($output, $arr[$i]["char"].'x'.$arr[$i]["times"]); return implode(' ', $output); } $str = 'aaaaaaaaaabbbaaaccccc'; echo getChars($str);
[edit]
se consideri che lettere multiple in testi normali non sono mai più di 2 e se consideri che questo tuo "compressore" per ogni doppione scrive 3 caratteri ($cxN) e se consideri che per ogni NON doppione invece di un carattere occupi di nuovo 3 ($cx1 invece di $c) ... vedi che invece di un compressore stai cercando di fare un "ingigantore" di stringhe ... i compressori sono altro![]()