Læs data i en fil.

Tags:    php

Hej alle udviklere. Jeg søger et script som kan læse og opdele sætninger i en linje.

Linien ser sådan her ud; 6(=START TAL)1234567891234(=NUMMER-1)00000000000000(=INGEN DATA)123456789(=NUMMER-2)0000000000(=INGEN DATA)116(=PRIS)BLABLA(=NAVN)STK1310(=ENHEDEN (I f.eks. meter, stk mm..))00000000000000(=INGEN DATA)301007(=PRIS DATO SAT)00000000(=INGEN DATA)00000000(=INGEN DATA)00000000(=INGEN DATA)0000000000(=INGEN DATA)19791(=Gruppe id)0000001000000154801007PA(=VED IKKE HVAD DET ER(måske id på tingen))

Den kan tolkes i følgende sætninger => DEL (ANTAL TEGN): Del[1](1) Del[2](13) Del[3](14) Del[4](9) Del[5](10) Del[6](UKENDT ANTAL) Del[7](UKENDT ANTAL) Del[8](UKENDT ANTAL) Del[9](14) Del[10](6) Del[11](8) Del[12](8) Del[13](8) Del[14](10) Del[15](5)(UKENDT ANTAL)

* Del[6] = PRIS
* Del[7] = NAVN
* Del[8] = ENHED (f.eks. stk, par, meter, pakke, millimeter osv.)

Nogle der kan hjælpe mig med at starte på sådanne script? Jeg har nemlig ingen ide om hvordan jeg skal få hul på opgaven.



5 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
prøv at starte med:
Fold kodeboks ind/udKode 


og det der står i din fejlbesked er at, webserver kan ikke proppe 30MB data i mem, da der kun er allokeret 8MB.

For at vi andre skal kunne komme med forslag til hvordan en linie skal læses, er det ikke nok med kun at se een linie. Det handler om at kunne se strukturen i indholdet og det skal der en del flere linier til.



Indlæg senest redigeret d. 28.11.2007 22:49 af Bruger #10216
Hvis de der værdier er delt med et bestemt tegn, eksempelvis et mellerum, kan du bruge:
$res = explode(' ',$str);

Ellers må du lige smide et eksempel af den færdige produktbeskrivelse der indeholder et par forskellige produkter.



Jamen hvordan kommer jeg så langt at jeg kan gør det?

Indtil videre har jeg

Fold kodeboks ind/udKode 


Men filen fylder for meget, så den kommer med denne fejl:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 30217321 bytes) in C:AppServ\\www\\laes.php on line 3



Linien ser sådan her ud i filen:
60000050536191000000000000084940009350000000001083BlaBlaBlaBla BlaBla Bla STK9410 00000000000000301007 00000000 00000000 00000000 000000000166665 000000100006018430DA675



Angående dit mem problem så forsøg dette som ændrer mem grænsen.

Fold kodeboks ind/udKode 


og så lige et spørgsmål, hvad i alverden har outputtet det kaos der (30 mb crap med random nuller..)? Der må være en mere simpel måde at løse dit problem på. Det er en smule vanskeligt da du både skal have smidt nogle tilfældige '0'er væk og samtidig splittet det af ved spaces. Der mangler ligesom et mønster hvis du kan følge mig :)



Indlæg senest redigeret d. 04.05.2008 05:23 af Bruger #13701
t