Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Citanje linija iz tekstualnog fajla

[es] :: C/C++ programiranje :: Citanje linija iz tekstualnog fajla

[ Pregleda: 3362 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Assassin
Aleksandar Antok
Beograd

Član broj: 1458
Poruke: 9
*.ppp-bg.sezampro.yu



Profil

icon Citanje linija iz tekstualnog fajla21.05.2002. u 13:57 - pre 239 meseci
Hocu da napisem program koji otvara jedan tekstualni fajl i iz njega cita prvu i drugu liniju koje smesta u 2 promenljive. Sto se tice dela za otvaranje fajla nemam nikakvih problema, ali citanja linija i smestanja u promenljive imam. Interesuje me kako se uopste linije mogu izdvajati od ostalih.
 
Odgovor na temu

Jovan Marjanovic
HP GmbH
Stuttgart

Član broj: 942
Poruke: 456
*.net.external.hp.com

ICQ: 42
Sajt: www.hp.com


Profil

icon Re: Citanje linija iz tekstualnog fajla21.05.2002. u 14:32 - pre 239 meseci
Idi do prve tehnicke knjizare, ili do biblioteke koja ima tehnicku literaturu.
Kupi/pozajmi knjigu koja se bavi bilo C ili C++ programiranjem, i procitaj poglavlje 3. ili je 4.
Gde ti objasne korak po korak kako se otvaraju fajlovi, i kako se citaju linije iz doticnih,
i kako se parsa tekst, i kako se tekst smesta u varijablu.

Ali posto sam poznat po tome da volim da pisem kriptican C kod, evo malog primera:

Code:

#include <stdio.h>
#include <string.h>
int main()
{
FILE *fajl;
char **nesto; //pretpostavimo da nista nece biti duze od 1024 karaktera ...
char *nesto2[1024];
char *token;
char tmpbuffer[1024];
int ii = 0;

fajl = fopen("neki fajl", "r"); //otvori fajl za read only
*nesto = (char *) malloc (1024 * sizeof (char));

while (fgets(tmpbuffer, 1024, fajl)!= NULL)
{
if(strlen(nesto )- 1024 <= strlen(tmpbuffer))
nesto = (char *) realloc(nesto, 1024* sizeof (char));
strncat(nesto, tmpbuffer, 1024);
}

token = strtok(nesto, "\n")
while (token != NULL)
{
strcpy(nesto2[ii], token);
ii++;
token = strtok(NULL, "\n");
}

fprint(nesto2[0]);
fprint(nesto2[1];

fclose(fajl); //zatvori stream
return;
}



Naravno ista stvar moze da se napise na jos bar 30 razlicitih nacina. ovo bi bilo quick and dirty.
takodje imamo funkcije kao sto je fgets, fread ....

ako si na linuxu - man pages
ako si na windozima - MSDN

u svakom slucaju, nauci bar malkice da programiras, tj procitaj koju knjigu pre nego sto pitas pitanja koja su na nivou moje sestre koja je pocela da uci C pre mesec dana.

disclaimer, ovaj kod je napisan cisto onako napamet,
koristiti na svoju odgovornost.


[Ovu poruku je menjao blue dana 21.05.2002 u 02:53 PM GMT]
Za automatsko dobijanje Super Moderatorskog statusa na Elitesecurity forumima pritisnite Alt+F4
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: Citanje linija iz tekstualnog fajla21.05.2002. u 14:44 - pre 239 meseci
Ja ne bi bio ja ako ne bi malo podjebavao... Naime zasto na Windows-u bas "mora" da se koristi MSDN kad lepo postoji man i na Windows-u! :) Ode se lepo na www.cygwin.com, besplatno totalno za sve normalne programere, cak mozete i Xwindows da startujete sa twm, fvwm2, kde, blackbox...!
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: Citanje linija iz tekstualnog fajla21.05.2002. u 17:18 - pre 239 meseci
Auuu ljudi, ubiste čoveka u pojam. Ako posle ovoga ne batali kompjutere zauvek, divim mu se.
 
Odgovor na temu

Nemanja Jakovljevic

Član broj: 940
Poruke: 707
*.beograd-3.tehnicom.net



+39 Profil

icon Re: Citanje linija iz tekstualnog fajla15.05.2003. u 01:24 - pre 227 meseci
Taj lik nije batalio kompove, verujte mi:)
Nemanja Jakovljevic
 
Odgovor na temu

6544616a006e
Nadej Kilec
Bukulja

Član broj: 10080
Poruke: 44
*.telia.com

Sajt: www.gnu.org


Profil

icon Re: Citanje linija iz tekstualnog fajla15.05.2003. u 02:43 - pre 227 meseci
Zapravo je OVO najelegantnije rešenje gore navedenog problema:
Code:

#include <stdio.h>
#include "parser.h"

int main(int argc, char* argv[]) {
  return obradi_fajl(argv[1]);
}


za funkciju obradi_fajl() se obrati meni, uradiću je za flašu dobrog vina...

:)
---
GNU's Not UNIX
 
Odgovor na temu

[es] :: C/C++ programiranje :: Citanje linija iz tekstualnog fajla

[ Pregleda: 3362 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.