|
| Ny linje i txt fil Fra : -Martin- |
Dato : 27-07-02 04:22 |
|
Hejsa ...
Jeg har et mindre problem.
Hvis vi nu siger at
$ting = "en laaaaaaaaaang tekst";
Hvordan får jeg så lavet en ny linje i txt filen hvor $ting bliver
delt efter x antal tegn ?
txt filen vil så komme til at indeholde dette:
(foruden --- txt filen --)
-- txt filen --
en laaaaa
aaaaaang
tekst
| |
-Martin- (27-07-2002)
| Kommentar Fra : -Martin- |
Dato : 27-07-02 04:25 |
|
On Sat, 27 Jul 2002 05:22:03 +0200, -Martin-
<martin_aarhof[DONT]@SPAMhotmail.com> wrote:
>Hejsa ...
>
>Jeg har et mindre problem.
>
>Hvis vi nu siger at
>$ting = "en laaaaaaaaaang tekst";
>
>Hvordan får jeg så lavet en ny linje i txt filen hvor $ting bliver
>delt efter x antal tegn ?
>
>txt filen vil så komme til at indeholde dette:
>(foruden --- txt filen --)
>
>-- txt filen --
>en laaaaa
>aaaaaang
>tekst
OG det skal selvfølgelig IKKE dele ord midtover
| |
Jacob Bunk Nielsen (27-07-2002)
| Kommentar Fra : Jacob Bunk Nielsen |
Dato : 27-07-02 14:52 |
|
-Martin- <martin_aarhof[DONT]@SPAMhotmail.com> writes:
> -Martin- wrote:
>
>>Hvordan får jeg så lavet en ny linje i txt filen hvor $ting bliver
>>delt efter x antal tegn ?
>
> OG det skal selvfølgelig IKKE dele ord midtover
Det letteste er nok at lave en funktion der gør det.
Her er noget C-lignende pseudokode til en funktion der kan det, så kan
du selv implementere det i PHP (eller noget andet, hvis du skulle have
lyst :):
WordWrap(tekst, linjeLængde)
int strpos = 0
int strpos_orig = 0
char c
while (strpos < strlen(tekst) - linjeLængde)
strpos_orig = strpos = strpos + linjeLængde
for (c = tekst[strpos];
c not in skilletegn; /* fx mellemrum, linjeskift osv. */
c = tekst[strpos])
strpos = strpos - 1
if (strpos <= strpos_orig)
error("Argh - det var et langt ord")
exit FAILED /* fejlhåndtering ! */
InsertIntoTextAtPosition(strpos, "\n");
return tekst
.... bugs included for free.
Det burde kunne skrives næsten lige så kort i PHP.
Er man mere i humør til at bruge de indbyggede funktioner, så kan man
bruge < http://www.dk.php.net/manual/en/function.wordwrap.php>, men det
antog jeg at du ikke var interesseret i eftersom du ikke bare har
brugt den.
--
Jacob - www.bunk.cc
To err is human, to forgive unusual.
| |
-Martin- (27-07-2002)
| Kommentar Fra : -Martin- |
Dato : 27-07-02 16:35 |
|
On Sat, 27 Jul 2002 15:51:55 +0200, Jacob Bunk Nielsen <spam@bunk.cc>
wrote:
>-Martin- <martin_aarhof[DONT]@SPAMhotmail.com> writes:
>> -Martin- wrote:
>>
>>>Hvordan får jeg så lavet en ny linje i txt filen hvor $ting bliver
>>>delt efter x antal tegn ?
>>
>> OG det skal selvfølgelig IKKE dele ord midtover
>
>Det letteste er nok at lave en funktion der gør det.
>
>Her er noget C-lignende pseudokode til en funktion der kan det, så kan
>du selv implementere det i PHP (eller noget andet, hvis du skulle have
>lyst :):
>
>WordWrap(tekst, linjeLængde)
> int strpos = 0
> int strpos_orig = 0
> char c
> while (strpos < strlen(tekst) - linjeLængde)
> strpos_orig = strpos = strpos + linjeLængde
> for (c = tekst[strpos];
> c not in skilletegn; /* fx mellemrum, linjeskift osv. */
> c = tekst[strpos])
> strpos = strpos - 1
> if (strpos <= strpos_orig)
> error("Argh - det var et langt ord")
> exit FAILED /* fejlhåndtering ! */
> InsertIntoTextAtPosition(strpos, "\n");
> return tekst
Puhaa nu er jeg ikk den bedste til hverken PHP eller C - Men
prøver at finde rundt i det
>
>... bugs included for free.
>
>Det burde kunne skrives næsten lige så kort i PHP.
>
>Er man mere i humør til at bruge de indbyggede funktioner, så kan man
>bruge < http://www.dk.php.net/manual/en/function.wordwrap.php>, men det
>antog jeg at du ikke var interesseret i eftersom du ikke bare har
>brugt den.
Hmm ... jeg vidste ikk der fandtes en funktion til det - Tror lige
jeg ska have kigget lidt på den måske
| |
Ukendt (27-07-2002)
| Kommentar Fra : Ukendt |
Dato : 27-07-02 17:41 |
|
[SNIP]
Så nu kom jeg lidt længere, men fandt en lille fejl!
txt filen BURDE indeholde følgende
der gælder til søndag aften, udsendt kl. 17.30:
I aften og i nat efterhånden klart vejr de fleste steder. Temp. ned
mellem 12 og 17 grader, og svag til jævn vind fra syd og sydøst.
Søndag tørt og solrigt med temp. mellem 25 og 30 grader, og svag til
jævn vind fra sydøst.
MEN den indeholder dog KUN
(2 tomme linjer)
der
gælder
til
søndag
aften,
Er der en der kan forklare mig HVORFOR ?
Den funktion som laver rod i det ser således ud:
function limit_text($text,$maxchar){
$split=explode(" ",$text);
$i=0;
while(TRUE){
$len=(strlen($newtext)+strlen($split[$i]));
if($len>$maxchar){
break;
}else{
$newtext=$newtext."\n".$split[$i];
$i++;
}
}
return $newtext;
}
| |
Ukendt (27-07-2002)
| Kommentar Fra : Ukendt |
Dato : 27-07-02 17:45 |
|
Lidt mere forklaring
>[SNIP]
>
>Så nu kom jeg lidt længere, men fandt en lille fejl!
>txt filen BURDE indeholde følgende
>
>der gælder til søndag aften, udsendt kl. 17.30:
>I aften og i nat efterhånden klart vejr de fleste steder. Temp. ned
>mellem 12 og 17 grader, og svag til jævn vind fra syd og sydøst.
>Søndag tørt og solrigt med temp. mellem 25 og 30 grader, og svag til
>jævn vind fra sydøst.
Vejrudsigten står på 1 linje, og den ska så ned på x antal linjer ...
fx efter 30 tegn ska den lave en en ny linje... DOG må den
selvfølgelig IKKE hakke ord i stykker!
>Den funktion som laver rod i det ser således ud:
>
>function limit_text($text,$maxchar){
> $split=explode(" ",$text);
> $i=0;
> while(TRUE){
> $len=(strlen($newtext)+strlen($split[$i]));
> if($len>$maxchar){
> break;
> }else{
> $newtext=$newtext."\n".$split[$i];
> $i++;
> }
> }
>return $newtext;
>}
Funktionen fandt jeg under php.net/wordwrap i en af kommentarene, som
lignede lidt ala det jeg skulle bruge den til ... men den laver dog
lidt kage i den .. Ved ikke helt hvor problemet er i den
| |
Jette (27-07-2002)
| Kommentar Fra : Jette |
Dato : 27-07-02 20:26 |
|
"-Martin-" skrev:
[klip]
> Funktionen fandt jeg under php.net/wordwrap i en af kommentarene, som
> lignede lidt ala det jeg skulle bruge den til ... men den laver dog
> lidt kage i den .. Ved ikke helt hvor problemet er i den
Hej Martin
Jeg fandt denne funktion et sted på nettet, og den fungerer fint for mig
function textwrap ($String, $breaksAt, $breakStr, $padStr="") {
$newString="";
$lines=explode($breakStr, $String);
$cnt=count($lines);
for($x=0;$x<$cnt;$x++){
if(strlen($lines[$x])>$breaksAt){
$str=$lines[$x];
while(strlen($str)>$breaksAt){
$pos=strrpos(chop(substr($str, 0, $breaksAt)), " ");
if ($pos == false) {
break;
}
$newString.=$padStr.substr($str, 0, $pos).$breakStr;
$str=trim(substr($str, $pos));
}
$newString.=$padStr.$str.$breakStr;
}
else{
$newString.=$padStr.$lines[$x].$breakStr;
}
}
return $newString;
}
Mvh. Jette
--
Ny bruger af dk.fritid.dyr.kat? Opret din profil og se andres på
gruppens hjemmeside http://www.dk-fritid-dyr-kat.dk
| |
Ukendt (28-07-2002)
| Kommentar Fra : Ukendt |
Dato : 28-07-02 02:16 |
|
>function textwrap ($String, $breaksAt, $breakStr, $padStr="") {
> $newString="";
> $lines=explode($breakStr, $String);
> $cnt=count($lines);
> for($x=0;$x<$cnt;$x++){
> if(strlen($lines[$x])>$breaksAt){
> $str=$lines[$x];
> while(strlen($str)>$breaksAt){
> $pos=strrpos(chop(substr($str, 0, $breaksAt)), " ");
> if ($pos == false) {
> break;
> }
> $newString.=$padStr.substr($str, 0, $pos).$breakStr;
> $str=trim(substr($str, $pos));
> }
> $newString.=$padStr.$str.$breakStr;
> }
> else{
> $newString.=$padStr.$lines[$x].$breakStr;
> }
> }
> return $newString;
>
>}
Hmm ... Kan du ikk lige fortælle mig hva de 4 strenge skal være
$string = Vejret selvfølgelig
$breaksAt = ??
$breaksStr = ??
$padStr = ??
| |
Jacob Bunk Nielsen (27-07-2002)
| Kommentar Fra : Jacob Bunk Nielsen |
Dato : 27-07-02 17:07 |
|
-Martin- <martin_aarhof[DONT]@SPAMhotmail.com> writes:
> On Sat, 27 Jul 2002 15:51:55 +0200, Jacob Bunk Nielsen <spam@bunk.cc>
> wrote:
>>
>>Her er noget C-lignende pseudokode til en funktion der kan det, så kan
>>du selv implementere det i PHP [ ... ]
>
> Puhaa nu er jeg ikk den bedste til hverken PHP eller C - Men
> prøver at finde rundt i det
OK - jeg troede det var selve algoritmen du havde problemer
med. Sproget jeg har brugt er bare et pseudosprog. Den slags er
praktisk når man skal vise algoritmer, hvor de små tekniske detaljer
ikke er så relevante.
At det lige kom til at ligne C skyldes at det er det sidste jeg har
kodet intensivt
> Hmm ... jeg vidste ikk der fandtes en funktion til det - Tror lige
> jeg ska have kigget lidt på den måske
Check altid manualen for om der findes en funktion der kan det du
søger. Der er *rigtig* mange funktioner indbygget i PHP til mærkelige
ting.
--
Jacob - www.bunk.cc
And now for something completely different.
| |
Ukendt (27-07-2002)
| Kommentar Fra : Ukendt |
Dato : 27-07-02 17:46 |
|
On Sat, 27 Jul 2002 18:06:46 +0200, Jacob Bunk Nielsen <spam@bunk.cc>
wrote:
>Check altid manualen for om der findes en funktion der kan det du
>søger. Der er *rigtig* mange funktioner indbygget i PHP til mærkelige
>ting.
Plejer jeg også at gøre, meeen nu er der jo 10000mio forskellige
funktioner, og hvis man så lige skal finde 1 funktion, så kan det jo
være svært at se skoven for bare træer
| |
|
|