Avatar billede tallens Nybegynder
01. april 2003 - 16:54 Der er 4 kommentarer og
1 løsning

Regular Expression

(rent teoretisk, men _MEGET_ gerne med en praktisk løsning, da jeg sidder helt fast i hvordan den skal løses.)

Jeg har en tekst fil, men nogle linjer.
alle disse linjer har nogle ensartigheder, i deres op sætning:
01-04-2003 15:28 [TEKST](#nummer) indbetalt [beløb med punktum seperation] dollars.

et eksemple på 3 linjer.
01-04-2003 15:28 Thomas (#3112) indbetalt 250.500 dollars
01-04-2003 15:29 Thomas (#3112) indbetalt 150.000 dollars
01-04-2003 15:30 Thomas (#3112) indbetalt 50.500 dollars

Hvis der så var 20 (eller 200?) af disse linjer og jeg ville ha' 4 typer data fra denne linje,( Dato|navn|nummer|pengesum ) og så ha den automatisk til at gå vidre til næste linje i tekst filen (eller i et form felt) disse 3 typer data skal den smide over i en database (til at starte med lad os bruge en Access DB)

Hvordan ville det kunne lade sig gi' sig?!

(til de hurtige ja, det skal bruges til at bearbejde data fra et online spil :)


(jeg skal bruge en tilsvarende function til at smide :

01-04-2003 12:55 navn (#44551) en af dine hackede andetnavn (#25251) en af teknokratiet

her vil jeg gerne kunne tage Dato|navn1|nummer1|andetnavn|andetnummer|teknokratinavn
(disse skal selvfølgelig også smides i en Database)

Al hjælp er ønskelig, og jeg giver point til den person som kommer med den bedste løsning som jeg kan bruge.

på forhånd tak... håber der kommer et rigtig godt svar.
Avatar billede -master-d- Nybegynder
01. april 2003 - 16:56 #1
Er det en database du allerede har lavet ?
Hvis ikke vil jeg anbefale at du sepererer din streng med kommaer.
Da det er meget mere simpelt at skille ad igen end med reg. expression.
Avatar billede tallens Nybegynder
01. april 2003 - 20:47 #2
okey, rimlig smart, sådan har jeg ikke lige tænk på det.. hvis det ikke kommer mere end det så vil jeg da til en hvertid overveje dette, som den endelige løsning! :)

/Lukas
Avatar billede tallens Nybegynder
01. april 2003 - 23:20 #3
et mindre problem kommer i at finde ud af at loop igennem strengen og får den til at lave et ordentlig output, jeg kan f.eks. godt smide ";" ind imellem alle mellemrum og split dem, men problemet kommre hvis der er en som hedder f.eks. Thomas Hansen (#31321).

og så kan jeg ikke pt. finde ud af at få den til at cykle igennem (i dette tilfælde) Formfeltet (et textarea) og så behandle hver linje seperat, den kigger på det hele som én linje og smider bare nogle ; tegn ind som den lyster.

/Lukas
Avatar billede hsloth Novice
01. april 2003 - 23:26 #4
Noget i retningen af :
{??-??-????}\b{??\:??}{[^\(]*}\(#{[^\)]*}[^0..9]*{[0..9\.]*}.*

skulle skille en enkelt linie.

Kig lidt på noget Perl til at løbe dine data igennem
Avatar billede tallens Nybegynder
02. april 2003 - 23:00 #5
fint nok, det var slet ikke så dårligt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester