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 | 1369 (1068) | Randomness |
| » | [C] Razbitje stringa s pomočjo indeksovOddelek: Programiranje | 935 (813) | Shinobi |
| » | [C] struct in int[] (strani: 1 2 )Oddelek: Programiranje | 8229 (7302) | MrBrdo |
| » | C strukture, kazalci naloga pomocOddelek: Programiranje | 1577 (1472) | DavidJ |
| » | Pointer-ji v C-juOddelek: Programiranje | 1901 (1599) | rokpok |