Bertel Lund Hansen
2010-10-07 22:36:22 UTC
Hej alle
Jeg skal finde mellemrum i en streng efter visse regler. Det kan
jeg sagtens, og jeg har en færdig version af programmet. Men i
stedet for at løbe en delstreng slavisk igennem ville jeg hellere
bruge rfind().
Programmet skal sætte en tekstfil op med lige lange linjer
(maxwidth).
Her er den løkke jeg bruger og som virker. Den skal erstatte et
mellemrum med et linjeskift:
while pos0<len(line)-maxwidth:
pos=line[pos0:].find(' ')
if pos>=0:
if pos<maxwidth:
pos=pos0+maxwidth
while line[pos]!=' ': pos-=1
else:
pos=len(line)
buffer+=line[pos0:pos]+'\n'
pos0=pos+1
Følgende kode går i loop ved behandlingen af allerførste
delstreng. Hvis printlinjen aktiveres, skrives der 64 i em
uendelig løkke.
while pos0<len(line)-maxwidth:
pos=line[pos0:pos0+maxwidth].rfind(' ')
if pos<0:
pos=line[pos0:].find(' ')
if pos<0: pos=len(line)
# print pos
buffer+=line[pos0:pos]+'\n'
pos0=pos+1
Jeg skal finde mellemrum i en streng efter visse regler. Det kan
jeg sagtens, og jeg har en færdig version af programmet. Men i
stedet for at løbe en delstreng slavisk igennem ville jeg hellere
bruge rfind().
Programmet skal sætte en tekstfil op med lige lange linjer
(maxwidth).
Her er den løkke jeg bruger og som virker. Den skal erstatte et
mellemrum med et linjeskift:
while pos0<len(line)-maxwidth:
pos=line[pos0:].find(' ')
if pos>=0:
if pos<maxwidth:
pos=pos0+maxwidth
while line[pos]!=' ': pos-=1
else:
pos=len(line)
buffer+=line[pos0:pos]+'\n'
pos0=pos+1
Følgende kode går i loop ved behandlingen af allerførste
delstreng. Hvis printlinjen aktiveres, skrives der 64 i em
uendelig løkke.
while pos0<len(line)-maxwidth:
pos=line[pos0:pos0+maxwidth].rfind(' ')
if pos<0:
pos=line[pos0:].find(' ')
if pos<0: pos=len(line)
# print pos
buffer+=line[pos0:pos]+'\n'
pos0=pos+1
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/