Forum » Programiranje » [C] shranjevanje stringov v array
[C] shranjevanje stringov v array
pijavka ::
Imam txt file v katerem je v vsaki vrstici zapisano: ime_racunalnika;IP;username;password. Pač ločeno s podpičem.
Sedaj sem skušal v Cju napisat program, ki prebere te vrednosti in jih sharni v tabelo.
Do sedaj mi je uspelo narediti to:
Za ločevanje med dvopičjem sem uporabil strtok. Hm. Stvar sicer deluje, bral sem kako naj se uporabi, vendar mi ni čisto jasno. Kakšna alternativa?
Program lepo izpisuje, kar je prebral v fajlu, samo nikakor ne znam tega shraniti.
Rad bi nekako v for zanki shranil vrednosti. Razmišljal sem v tej smeri: recimo naredil bi array IP_addresses[i][20] in potem bi za vsak i shranil notri IP naslov. Izgleda lahko, samo meni nikakor ne uspe. Skušal sem uporabiti pointerje, samo sem preveč šlampast, pa ni bilo pravega rezultata.
Kakšen predlog?
Sedaj sem skušal v Cju napisat program, ki prebere te vrednosti in jih sharni v tabelo.
Do sedaj mi je uspelo narediti to:
#include <stdio.h> #include <stdlib.h> #include <string.h> void get_names(char str[150]); int main() { FILE *f0; char tmp_0[200]; f0 = fopen("names.txt", "r"); int i = 0; for(i; f0 != NULL && fgets(tmp_0, sizeof(tmp_0), f0) != NULL; i++) { printf("Nr. %d\n", i + 1); get_names(tmp_0); } fclose(f0); return 0; } void get_names(char str[150]) { char delims[] = ";"; char *computer_name = NULL; char *IP_address = NULL; char *username = NULL; char *password = NULL; computer_name = strtok(str, delims); IP_address = strtok(NULL, delims); username = strtok(NULL, delims); password = strtok(NULL, delims); printf("COMPUTER NAME: %s\n", computer_name); printf("IP ADDRESS: %s\n", IP_address); printf("USERNAME: %s\n", username); printf("PASSWORD: %s\n", password); }
Za ločevanje med dvopičjem sem uporabil strtok. Hm. Stvar sicer deluje, bral sem kako naj se uporabi, vendar mi ni čisto jasno. Kakšna alternativa?
Program lepo izpisuje, kar je prebral v fajlu, samo nikakor ne znam tega shraniti.
Rad bi nekako v for zanki shranil vrednosti. Razmišljal sem v tej smeri: recimo naredil bi array IP_addresses[i][20] in potem bi za vsak i shranil notri IP naslov. Izgleda lahko, samo meni nikakor ne uspe. Skušal sem uporabiti pointerje, samo sem preveč šlampast, pa ni bilo pravega rezultata.
Kakšen predlog?
- spremenilo: pijavka ()
Vesoljc ::
za parsanje lahko uporabis tudi sscanf druzino
lahko nardis strukturo z staticnimi size-i ala
down side je wasted memory, alpa pac alociras tocno tolk kot rabis, ko gre filat strukturo
"downside" je rocna alokacija/dealokacija
rabis nujno C? ce presaltas na c++ dobis stdlib zraven, ki ma arraye (vector), ce ne pa naredis tole:
lahko nardis strukturo z staticnimi size-i ala
struct compinfo { char compname[32]; int ip; char username[32]; char password[32]; };
down side je wasted memory, alpa pac alociras tocno tolk kot rabis, ko gre filat strukturo
struct info { char *compname; int ip; char *username; char *password; };
// read computer_name // get string length int len = strlen // alloc buffer info.compname = malloc ( len ); // copy string strcpy info.compname, computer_name
"downside" je rocna alokacija/dealokacija
rabis nujno C? ce presaltas na c++ dobis stdlib zraven, ki ma arraye (vector), ce ne pa naredis tole:
compinfo *aCompInfo[1000]; int count = 0; for each text line in file compinfo *cf = malloc ( sizeof(compinfo) ); // read stuff // fill cf // cf->compname aCompInfo[count] = cf; count = count + 1
Abnormal behavior of abnormal brain makes me normal...
pijavka ::
Hvala lepa za odgovor. Ko preštudiram tvoj napotek, (strukture + pointerji še niso čisto jasni), javim, kako je ratalo.
No, super! Dela, ratalo zrihtat! Hvala!
No, super! Dela, ratalo zrihtat! Hvala!
Zgodovina sprememb…
- spremenilo: pijavka ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C - shranjevanje rezultatov iz baze v arrayOddelek: Programiranje | 1222 (921) | Randomness |
» | [C] Razbitje stringa s pomočjo indeksovOddelek: Programiranje | 831 (709) | Shinobi |
» | [C] struct in int[] (strani: 1 2 )Oddelek: Programiranje | 7339 (6412) | MrBrdo |
» | C strukture, kazalci naloga pomocOddelek: Programiranje | 1464 (1359) | DavidJ |
» | Pointer-ji v C-juOddelek: Programiranje | 1777 (1475) | rokpok |