Wywołanie poprzez rozszerzenie


(Cezarycezary2) #1

W jaki sposób zrobić coś takiego, żeby rodzaj i sposób odczytu/zapisu danych

program rozpoznaje po rozszerzeniu w nazwie pliku.

Chodzi o to, że jak sie wpisze save plik.txt to sie wywoła jedna funkcja, a jak save plik.mdb to jakaś inna.

Same funkcje mam już napisane tylko nie bardzo wiem, jaka funkcja może mi "złapać" kawałek wpisanej komendy po kropce (żeby tylko złapało txt albo mdb).

Mam nadzieje ze ująłem problem w miarę jasno.


(Sawyer47) #2

Problem jasno wyjaśnionym, ale podstawowe pytanie to w czym, jak, gdzie wpiszesz?


(Cezarycezary2) #3

Program pisze w C, a komendy są wpisywane przez użytkownika, który ma listę poleceń do wyboru...


(Sawyer47) #4

Hmm o coś takiego Ci chodziło?

#include 

#include 


int main()

{

	char plik[] = "plik.dobreprogramy";


	char* ext = strrchr(plik, '.');

	if(ext != NULL) {

		int pos = ext - plik + 1;

		printf("Rozszerzenie '%s' pliku '%s' zaczyna się od %d pozycji \n", ext, plik, pos);


		if(!strcmp(ext, ".txt")) printf("Zapisuję plik txt...\n");

		else if(!strcmp(ext, ".dobreprogramy")) printf("Zapisuję plik dobreprogramy...\n");

		else printf("Rozszerzeie %s nie jest obsługiwane.\n", ext);


	} else {

		printf("Nie znaleziono rozszerzenia\n");

	}

return 0;

}

W sumie to moje pierwsze doświadczenie z C, ale zadanie chyba spełnia? Możesz ten kod zapakować w funkcję, która wywołuje te właściwe.


(Cezarycezary2) #5

dokładnie o coś takiego, spróbuje to zaraz wdrożyć do programu, bardzo dzięki za pomoc