Kom ihåg mig?

Numrera rader med regexp

 
Ämnesverktyg Visningsalternativ
Oläst 2008-01-02, 20:34 #1
Ungdebatt Ungdebatt är inte uppkopplad
Nykomling
 
Reg.datum: Apr 2007
Inlägg: 30
Ungdebatt Ungdebatt är inte uppkopplad
Nykomling
 
Reg.datum: Apr 2007
Inlägg: 30
Hej.

Säg att jag har en text i databasen som ser ut på detta vis:

--------------------------------------------------------------
Jag heter Jeppe och jag kan äta en apelsin på
fem sekunder. Jag kan även dricka fem liter mjölk
på mindre än en halv sekund. Vad kan du göra?
--------------------------------------------------------------

Det jag vill göra är att när jag skriver ut texten på min sida så ska den med hjälp av regexp numrera raderna, ungefär såhär:

--------------------------------------------------------------
1. Jag heter Jeppe och jag kan äta en apelsin på
2. fem sekunder. Jag kan även dricka fem liter mjölk
3. på mindre än en halv sekund. Vad kan du göra?
--------------------------------------------------------------

Jag har testat mig fram på några vägar, men det gick inte så bra. Skulle ni kunna hjälpa med det problemet?

Tack på förhand.
Ungdebatt är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-02, 21:25 #2
Björklunds avatar
Björklund Björklund är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jul 2006
Inlägg: 594
Björklund Björklund är inte uppkopplad
Mycket flitig postare
Björklunds avatar
 
Reg.datum: Jul 2006
Inlägg: 594
En loop kanske?
Loopa igenom databasen och ändra ^ till värde X.
Björklund är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-02, 21:27 #3
martines avatar
martine martine är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2005
Inlägg: 767
martine martine är inte uppkopplad
Mycket flitig postare
martines avatar
 
Reg.datum: Mar 2005
Inlägg: 767
Vad har du för kriterier för radindelningen?

Ska varje rad var tio ord lång, ett visst antal bokstäver eller en viss optisk längd med ett bestämt typsnitt?

Du får nog precisera lite mer.
martine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-02, 21:53 #4
Lundmarks avatar
Lundmark Lundmark är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2004
Inlägg: 1 026
Lundmark Lundmark är inte uppkopplad
Har WN som tidsfördriv
Lundmarks avatar
 
Reg.datum: Jan 2004
Inlägg: 1 026
....eller har varje rad en radbrytning (/n)?
Lundmark är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-02, 22:17 #5
Ungdebatt Ungdebatt är inte uppkopplad
Nykomling
 
Reg.datum: Apr 2007
Inlägg: 30
Ungdebatt Ungdebatt är inte uppkopplad
Nykomling
 
Reg.datum: Apr 2007
Inlägg: 30
Jag har testat med följande kod, men mina RegExp kunskaper är tydligen inte tillräckliga. Jag har testat med att bryta ut \r \n och \s

Kod:
strText = "texten här som ska bearbetas"

With New RegExp
IgnoreCase = TRUE
.Global = TRUE
.Pattern = "(\n|\r|)"
Set objMatches = .Execute(strText)

strResult = ""
lngPos = 1

For Each objMatch In objMatches
 If objMatch.FirstIndex > lngPos Then
  strResult = strResult & Mid(strText, lngPos, objMatch.FirstIndex - lngPos + 1)
  inti = inti + 1
 End If

 strFound = inti & objMatch & "<br />" 
 strResult = strResult & strFound
 lngPos = objMatch.FirstIndex + objMatch.Length + 1
Next
   	
strNewText = strResult & Mid(strResult, lngPos)

End With
EDIT:
@martine
#1. Den ska reagera på radbrytning, vbcrlf, då skapar den en ny rad
#2. Den ska reagera på ifall en rad är längre än t.ex. 800 tecken, då gör den en ny rad.
Ungdebatt är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-03, 23:50 #6
eliasson eliasson är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2005
Inlägg: 1 863
eliasson eliasson är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2005
Inlägg: 1 863
Ptja, jag kan då inte ASP men med PHP så kan du alltid använda explode() på "\n" och sedan foreach'a det.
eliasson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-05, 23:22 #7
Ungdebatt Ungdebatt är inte uppkopplad
Nykomling
 
Reg.datum: Apr 2007
Inlägg: 30
Ungdebatt Ungdebatt är inte uppkopplad
Nykomling
 
Reg.datum: Apr 2007
Inlägg: 30
eliasson, kan du vara snäll och visa ett kodexempel?
Ungdebatt är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-05, 23:28 #8
gsocs avatar
gsoc gsoc är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2007
Inlägg: 568
gsoc gsoc är inte uppkopplad
Mycket flitig postare
gsocs avatar
 
Reg.datum: Jun 2007
Inlägg: 568
Kod:
$text = explode("\n", $filinnehall);
for($i = 0; $i < count($text); $i++){
echo "$i. Här gör vi nått med $text[$i]\n";
}
gsoc är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-06, 00:25 #9
Ungdebatt Ungdebatt är inte uppkopplad
Nykomling
 
Reg.datum: Apr 2007
Inlägg: 30
Ungdebatt Ungdebatt är inte uppkopplad
Nykomling
 
Reg.datum: Apr 2007
Inlägg: 30
Tack, jag kan ingen PHP, men jag får nog googla lite efter hjälp för att kunna "översätta" koden, det om ingen här kan hjälpa mig med det förståss.

Tack för hjälpen.
Ungdebatt är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-06, 07:10 #10
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Den funktion i ASP som motsvarar PHP:s Explode heter Split.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 23:31.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017