Toon posts:

In ansi c een variable hoeveelheid velden in leze

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoe doe je dit. Ik moet dit voor schooldoen:
1. een txt bestand met op de eerste regel een variabel aantal woorden gescheiden door een spatie
2. Deze omzetten naar een kommagescheiden bestand met veldnamen erboven
3. dus eerste regel zijn veldnamen die de user moetopgeven
4. het programma moet zelf de hoeveelheid velden bepalen

Ik krijg dit niet voor me kaar wie kan mij helpen

Verwijderd

Waar loop je vast ? Wat heb je tot nu toe ? Waar zit precies het probleem ?

Verwijderd

Ik denk dat ie niet weet waar ie moet beginnen?

1) Lees een regel uit het bestand
2) Zoek de spaties
3) Lees de veldnamen van de gebruiker
4) Schrijf veldnamen weg naar nieuw bestand
5) vervang de spaties in de regel door kommas
6) schrijf Regel weg naar het nieuwe bestand
7) lees volgende regel
8) herhaal 5+6+7 tot je aan het einde van je bestand bent.

Verwijderd

Topicstarter
Ik weet neit hoe ik die variable hoeveelheid velden moet inlezen. Ik loo al in het begin vast. Mijn C ervaring is ook megaklijn. Vorig jaar namelijk begonnen met programeren op school. Heel veel weet ik er dus niet van

  • MDA
  • Registratie: December 2000
  • Laatst online: 20-10-2023

MDA

 

Je geeft wat weining info maar is het niet zoiets als:

while(c=fgetc(filenaam) !='\n'){ //tot regelovergang
if(c==" "){ //indien spatie
fputc(",", nieuwefilenaam); //komma plaatsen
}
else{
fputc(c, nieuwefilenaam); //overige karakters
}
}

Verwijderd

Op donderdag 18 oktober 2001 08:50 schreef cybernmans het volgende:
Ik weet neit hoe ik die variable hoeveelheid velden moet inlezen. Ik loo al in het begin vast. Mijn C ervaring is ook megaklijn. Vorig jaar namelijk begonnen met programeren op school. Heel veel weet ik er dus niet van
Nou, dan ga je gewoon stapje voor stapje erachter komen wat er moet gebeuren en hoe dat moet, dus:

Hoe open/lees ik een file ?
Hoe lees ik een aantal karakters uit zo'n file ?
Hoe zoek ik spaties in de gelezen karakters ?
Wat voor datastructuren heb ik nodig ?
etc.

  • it0
  • Registratie: April 2000
  • Laatst online: 27-12-2025

it0

Mijn mening is een feit.

de functies die jij zoekt zijn
fopen
while
fgets
strtok
fprintf
misschien sprintf
fclose

Zoekt het verder maar uit dan leer je nog eens wat!

Verwijderd

Topicstarter
Iedereen bedanklt enne van de vakantie (is geen vakantie want daarna 3 tentamens) ga ik er mee aan de slag.

mans

Verwijderd

code:
1
2
3
4
5
6
while(c=fgetc(filenaam) !='\n'){  //tot regelovergang
   if(c==" ")              //indien spatie
    fputc(",", nieuwefilenaam); //komma plaatsen
   else
    fputc(c, nieuwefilenaam);   //overige karakters 
}

Succes >:)

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:46

Creepy

Tactical Espionage Splatterer

Kijk dan ook eens naar fscanf
code:
1
2
3
4
5
6
7
8
9
10
while (fscanf(file,"%s",*string)=1)
{
   /*
    *string bevat 1 woord! Fscanf leest alleen strings,
    en neemt de spaties niet mee.. scheelt je weer
    spaties filteren :)
    als er geen strings gelezen meer kunnen worden geeft
    fscanf geen 1 terug, en gaat ie dus vanzelf uit de lus
   */
}

Kan zijn dat de syntax niet helemaal correct is, maar dan pak je er maar een C boek of een man page bij.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Topicstarter
Hoe kan je het aantal woorden tellen op de eerste regel van een file? dat lijkt me nu ff handig om te weten want dan kan ik die velden maken en daarna de file input file kopieren.

  • roelio
  • Registratie: Februari 2001
  • Niet online

roelio

fruitig, en fris.

Op donderdag 18 oktober 2001 11:36 schreef cybernmans het volgende:
Hoe kan je het aantal woorden tellen op de eerste regel van een file? dat lijkt me nu ff handig om te weten want dan kan ik die velden maken en daarna de file input file kopieren.
mag niet want het moet variabel kunnen zijn! :D

AMD Phenom II X4 // 8 GB DDR2 // SAMSUNG 830 SSD // 840 EVO SSD // Daar is Sinterklaas alweer!!


Verwijderd

Topicstarter
variablel in het feit dat je niet hardcoded het aantal velden vast legt

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:46

Creepy

Tactical Espionage Splatterer

Waarom zou je gaan tellen? Als je veld voor veld inleest en wegschrijft hoef je niet te tellen! EN dan hoef je ook maar 1 "veld" (je bedoelt variabele??) aan te maken. Gewoon 1 inlezen, en meteen wegschrijven.

Je kan dan elke keer dat je een veld wegschrijft, een teller ophogen, zodat je weet hoeveel velden je hebt als je een file nog verder gaat vullen. En dan met bijvoorbeeld een for-loop ofzo... hoef je nog steeds maar 1 veld per keer te doen.... en niet een aantal variabelen aan te maken.

je praat over velden en komma gescheiden.. laat me raden.. Excel import bestandje waarin je spaties naar komma's om moet zetten... complete voorbeeld code is hiero al gegeven (voor het lezen en omzetten). En dat voor een schoolopdracht! (zie faq) :)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • it0
  • Registratie: April 2000
  • Laatst online: 27-12-2025

it0

Mijn mening is een feit.

ik zal het nog 1x zeggen strtok

Verwijderd

Topicstarter
het iritante is dat bovenaan de file ook de veldnaam moet komen te staan die de user aangeeft. dus het zal zo ongeveer gaan:
tel aantal woorden op eerste regel
vraag en schrijf veldnamen weg.
kopieer het brondbestand en vervang spaties door komma's

Excel bijna goed.... Microschoft access
Pagina: 1