Kako da rijesim problem sa dugim tekstom

Dali neko zna da rijesi problem dugackog teksta… treba mi perl/cgi kod da lomi texst na odredzen broj karaktera

(treba mi kod da rijesi ovaj problem… )

npr.

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa…

Ako ko zna nek mi se javi bicu mu od srca zahvalan

oxay@brcko.org

na koliko karaktera ti treba?

Probaj ovako:



@rijeci = split (/s/,$tekst);

foreach $rijec (@rijeci) {

while (length($rijec) > 50) { #recimo

print substr($rijec,0,50);

$rijec = substr($rijec,51);

}

print $rijec;

}

Hvala puno sacu da probam dali pase…

Prijatelju ovaj mi kod nepase najbolje… jeste da lomi na odredzen broj karaktera ali nepase mi…



Da ti objasnim treba mi neko rijesenje da prilikom citanej teksta iz baze $text da ubacuje svakog npr. 10 karaktera da ubacuje “-” i prebaci onaj ostali tekst u novi red.



npr.

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-



Unaprijed zahvalan



oxay@brcko.org

prijatelju zahvaljujem ti se mnogo i pase mi ovaj kod

samo kad bi ovaj kod mogao da prekida samo odredzen broj

karaktera ako su zajedno bez razmaka ako su ti karakteri

sa razmakom da ih ne prekida jer ce se oni samo prebaciti

u drugi red…



Nadam se da si svadio na sta sam mislio…



npr.

aaaaaaaaaaaaaaaaaaaaaaa-

aaaaaaaaaaaaaaaaaaaaaaa-

aaaaaaaaaaaaaaaaaaaaaaa-

aaaaaaaaaaaaaaaaaaaaaaa-

aaaaa aaaaa aaaaaa aaaaa

aaa aaaa aaaaaa aaaaaaaa



Jos jednom hvala puno…

Vidim da je ovaj forum pobrisao jedan backslash ispred s, dakle:



@rijeci = split (/!s/, $tekst);



umjesto usklicnika ! stavi backslash



sto se tice crtice, ispravi 4. liniju u



print substr($rijec,0,50) . “-”;



za ono drugo, skripta i radi to tako da ne znam sta si htio

ovo radi dobro ali ne i najbolje…



kad bi moglo da prekida samo rijec

koja je duza od npr.50 karaktera ako

je manja od 50 i ima razmak izmedzu

rijeci da ne-prekida te karakrete…

(“aaaa aaaa aaaa aaaa” da ne-prekida

a “aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa” da prekida)



npr.

aaaaaaaaaaaaaaaaaaaaaaa-

aaaaaaaaaaaaaaaaaaaaaaa-

aaaaaaaaaaaaaaaaaaaaaaa-

aaaaa aaaaa aaaaaa aaaaa aaaaa aaaaa aaaaaa aaaaa aaaaa aaaaa aaaaaa aaaaa aaaaa aaaaa aaaaaa aaaaa aaaaa aaaaa aaaaaa aaaaa aaaaa aaaaa aaaaaa aaaaa aaaaa aaaaa aaaaaa aaaaa aaaaa aaaaa aaaaaa aaaaa aaaaa aaaaa aaaaaa aaaaa aaaaa aaaaa aaaaaa aaaaa

aaaaaaaaaaaaaaaaaaaaaaa-

aaaaaaaaaaaaaaaaaaaaaaa-

aaaaa aaaaa aaaaaa aaaaa aaaaa aaaaa aaaaaa aaaaa aaaaa aaaaa aaaaaa aaaaa aaaaa aaaaa aaaaaa aaaaa aaaaa aaaaa aaaaaa aaaaa aaaaa aaaaa aaaaaa aaaaa aaaaa aaaaa aaaaaa aaaaa aaaaa aaaaa aaaaaa aaaaa aaaaa aaaaa aaaaaa aaaaa aaaaa aaaaa aaaaaa aaaaa

aaaaaaaaaaaaaaaaaaaaaaa-

aaaaaaaaaaaaaaaaaaaaaaa-



valjda sam sad bio jasan…

Izvini jarane

stvarno sam rijetko na ovom forumu

tek sam sad vidio sta se desava

program radi tacno to sto si trazio

samo moras ispraviti onaj backslash

taj backslash+s znaci "space"

ako pise nesto drugo, onda program ne vidi da su rijeci odvojene space-om nego necim drugim

dakle popravi backslash i radice

Care hvala mnogo sto ipak navratis pa odgovoris… nija nisam na ovom forumu stalno naletim ponekad…



opet gore se nisam izjasno najbolje…

Care stavio sam backslash ali opet nesto nevalja \\\\\\\

sad rijeci sa razmakom brise izmedzu tih rijeci razmak pa tako bude opet sastavljena duga rijes… sa backslash



npr. aaaaa aaaaa aaaaaa cita bez razmaka aaaaaaaaaaaaaaaa

a dugu rijec aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

pise

aaaaaaaaaaaaa-

aaaaaaaaaaaaa-

aaaaaaaaaaaaa-

aaaaaaaaaaaaa-



evo kod valjda opet ne grijesim…



@komentar = split (/backslashs/,$komentar);

foreach $komentar (@komentar) {

while (length($komentar) > 55) {

print substr($komentar,0,55);

$komentar = substr($komentar,56) . “-”;

}

print $komentar;

}

neznam sta mi je ciniti titemi…

opet pogrijesi

@komentar = split (/backslashs/,$komentar);

foreach $komentar (@komentar) {

while (length($komentar) > 55) {

print substr($komentar,0,55) . “-”;

$komentar = substr($komentar,56);

}

print $komentar;

}

Ok, izvinjavam se.

Ispade vise stete nego koristi od mog odgovora



Trebas popraviti linije umjesto:

print $komentar = substr($komentar,56) . “-”;

stavi ovo:

print $komentar = substr($komentar,56) . "- ";

tj. dodaj jedan razmak iza crtice



a umjesto linije

print $komentar;

(to je predzadnja linija) stavi

print $komentar . " ";

jedan razmak treba biti izmedju navodnika

ok, pa ako ni to ne bude radilo - javi

Care radi ko zmaj…



HVALA PUNO…

jel ti hoces da iz baze uzmes neki tekst , da ga ucitas i da ako je rijec duza od 10(ili kolko vec hoces) slova da doda - da prenese u novi red a ako je space na kraju da samo prenese bez crtice? objasni sta pokusavas da uradis na konkretnom primjeru jer nemogu radit samo sa AAAAAAAAAAA posto je to sve jedan te isti karakter pa mi nije jasno sta pokusavas sa AAAAAA da ostvaris. I umjesto one rijeci “backslash gore” stavi /

Ma rijec je ocito o nekom forumu… stvarno ruzno izgleda kad neko napise ogromnu rijec i ona razvali cijelu stranicu i tabele itd. (kao npr. sto je na ovom forumu )

Pasha,



Evo male skriptice koja lomi stringove duze od 10 karaktera.

Probaj, pa javi ako sta treba promijenit’!





Code:


for($i = 0; $i < length($text); $i++) {

if(($c = substr($text, $i, 1)) eq " “) {

if($lomi > 0) {

$lomi = 0;

print " “;

}

} else {

if(++$lomi == 10) {

$lomi = 0;

print $c,”-\n”;

} else {

print $c;

}

}

}








Hadzija