Ga naar inhoud
  • 0

lees een TXT (csv) bestand en verwerk het


Gem

Vraag

Een duwtje in de goede richting, das wat ik nodig heb. :D

 

Ik heb een website opgezet (HTML5/CSS3/PHP). Bij het inloggen op de beveiligde pagina's wordt de login van de klant alsook de datum weggeschreven in een TXT bestand op de server. Dit gebeurt via PHP en in csv formaat.

 

Nu wil ik via een script in FM13 dit bestand op de server rechtstreeks inlezen (dus zonder eerst te downloaden) en de csv data verwerken in FM. Het inlezen van het bestand benader ik via de plugin van 360Works. Het is de bedoeling dat ik kan bijhouden hoeveel keer een bepaalde klant ingelogd heeft binnen een jaar en dus de activiteit per klant kan bijhouden.

 

Momenteel lukt het me om de csv data in te lezen in één veld/record binnen de FM omgeving. Nu zou ik die gegevens in een rapport moeten krijgen gesorteerd op klantnr. Het is van weinig belang dat de data effectief bijgehouden wordt want die wordt toch zeer geregeld opnieuw ingelezen via mijn script en is verder niet van toepassing.

Een voorbeeldje van de inhoud van het veld waar de csv data in terecht komt:

13,12-12-2015,55,13-12-15,57,18-12-15 enz... waar het eerste nummer het klant ID is en het tweede de datum.

 

Ik heb ook al gedacht om het csv bestand in te lezen via records importeren maar dan maak ik hopen records aan waar ik verder niets kan mee aanvangen.

 

Of ben ik totaal verkeerd bezig ?

Link naar reactie

1 antwoord op deze vraag

Aanbevolen berichten

  • 0

Bij het inlezen van ASCII bestanden e.d. (DXF, TXT, CSV, XML, ...) ben ik tot de vaststelling gekomen dat het eenvoudig is om deze als gewone tekst in te lezen (heb je geen plugin voor nodig) in één veld. Verander alles wat lijkt op een enter door een uniek teken, vb "§", hoe vaak kom je dat tegen.

vervolgens laat je scripts los die uiteindelijk gaan bepalen waar een nieuwe record moet beginnen, dat kan een bepaalde reeks cijfers en letters zijn of een vast aantal "§". op die plaats zet je een enter. Gebruik dan getvalue om die data in een veld van een andere tabel te zetten waarbij je zo de records in aanmaakt. Binnen die tabel ga je vervolgens aan de slag met andere scripts die dat veld per record gaat uitsplitsen in de nodige velden (of via calculaties binnen velden).

 

in jou voorbeeld komt alles binnen en op één lijn. je kan in dit eenvoudig geval gaan splitsen op de komma's. Waarbij de data voor de oneven komma in het veld klantnummer komt te staan en de data na de oneven komma in het veld datum. Zo creëer je een record met twee velden: klantnummer en datum (verder maak je ook best een automatisch ID veld aan en een veld waar je het moment van import bewaard).

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...