Avatar billede krukken Mester
08. maj 2002 - 16:57 Der er 7 kommentarer og
1 løsning

Læse fra .txt-fil over i array!

Opgaven består i at jeg skal have indlæst en txt-fil over i et array!

Jeg skal eksemplelvis have læst 200 krakterer fra Test.txt og over i et array. Dette skal gøre xantal gange.

Altså skal krakterne ligges over i et dobbelt array! Så der ligge 200 kraktere på første plads i det store array, og dernæst læses yderlige 200 kraktere til næste plads på næste plads i det store array! Dette skal ske så længe x ikke er lig 100!

Der er både bogstaver og tal i arrayet.

Det er i c++ og jeg bruger en borland compiler!
Avatar billede laffe Nybegynder
08. maj 2002 - 18:49 #1
Jeg er ikke helt med. Forklar det lige lidt nærmere.
Avatar billede chries Nybegynder
08. maj 2002 - 19:29 #2
er der linie brydning hver 200 karakter ? eller er det bare en lang linie der skal læses x * 200 ?
Avatar billede krukken Mester
08. maj 2002 - 20:03 #3
Det er en tekstfil som der skal læses 200 tegn fra ad gangen! Der er så oprettet et todimensionelt array! Så der så og sige kan være 200 karakter på hver plads i arrrayet?!
Avatar billede krukken Mester
09. maj 2002 - 17:03 #4
Er der ingen der kan hjælpe mig?!
Avatar billede laffe Nybegynder
09. maj 2002 - 18:46 #5
Vil det sige, at hvis du har en txt-fil på 650 bytes, så skal den nlæses på følgende måde:

200 bytes -> Data[0][0]
200 bytes -> Data[1][0]
200 bytes -> Data[2][0]
50 bytes -> Data[3][0]
Avatar billede laffe Nybegynder
09. maj 2002 - 19:26 #6
Kan det her bruges ?

#include <stdio.h >

#define MAXLINELEN 200
#define MAXNLINES  100

FILE *stream;
int LineNo,ChNo;
char ch;
char DataArray[MAXNLINES][MAXLINELEN];

// Åben filen
stream = fopen("fil.txt", "r+");

// Check om filen kunne åbnes
if (!stream)
{
  // Kunne ikke åbne filen
  return;
}
// seek til starten af filen.
fseek(stream, 0, SEEK_SET);

// Fyld hele array'et ud med 0'er
memset(DataArray,0,sizeof(DataArray));

LineNo = 0;
ChNo    = 0;
do
{
  // læs en character fra filen
  ch = fgetc(stream);
  if (ch != EOF)
  {
    // indsæt ch i array
    DataArray[LineNo][ChNo++] = ch;
    if (ChNo == (MAXLINELEN-1))
    {
      ChNo = 0;
      LineNo++;
    }
  }
} while (ch != EOF);

// luk filen
fclose(stream);
Avatar billede laffe Nybegynder
09. maj 2002 - 19:27 #7
Ovenstående kan indlæse op til 100 linier med hver 200 tegn
Avatar billede laffe Nybegynder
10. maj 2002 - 23:40 #8
>krukken. Kan ovenstående bruges, eller skal det rettes til ?
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