Hi!
Ich hab mri gerade eine funktion basename geschrieben, jetzt hab ich aber ein problem, und zwar will ich mein ergebniss ja auch wieder weiterverarbeiten
Am besten währe in der praxis der aufruf alla
char *dir=argv[0];
basename(filename, dir);
prinft("Name der datei: %s", filename);
Ich habe es jetzt multiple versucht, wie es im buch stand mit dem *, und ohne, und mit festgelegter stringlänge, einen char basename() aus der funktion zu machen, aber alles hat nicht so richtig geklappt, was bedeutet entweder bekomm ich making integer from pointer while passing arguments, oder die exe strützt später ab, bzw verursacht einen fehler.
Wenn ihr mir villeicht erklähren könntet, wie das geht, währe ich sehr dankbar.
Meine funktion sieht so aus:
Ich hab mri gerade eine funktion basename geschrieben, jetzt hab ich aber ein problem, und zwar will ich mein ergebniss ja auch wieder weiterverarbeiten
Am besten währe in der praxis der aufruf alla
char *dir=argv[0];
basename(filename, dir);
prinft("Name der datei: %s", filename);
Ich habe es jetzt multiple versucht, wie es im buch stand mit dem *, und ohne, und mit festgelegter stringlänge, einen char basename() aus der funktion zu machen, aber alles hat nicht so richtig geklappt, was bedeutet entweder bekomm ich making integer from pointer while passing arguments, oder die exe strützt später ab, bzw verursacht einen fehler.
Wenn ihr mir villeicht erklähren könntet, wie das geht, währe ich sehr dankbar.
Meine funktion sieht so aus:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
void basename(char *path)
{
char res[500], cache[500];
int pos=0, len=0;
//String lenght..
len = strlen(path);
len--;
//Put first character to cache
sprintf(cache, "%c", path[len]);
len--;
//Cache chars while matching first backslash..
for(pos=len; pos>=0; pos--)
{
if( path[pos] == '\\' )
{
break;
}
sprintf(cache, "%s%c", cache, path[pos]);
}
//Reverse result..
len = strlen(cache);
len--;
sprintf(res, "%c", cache[len]);
len--;
for(pos=len; pos>=0; pos--)
{
sprintf(res, "%s%c", res, cache[pos]);
}
//return res;
}
int main(int argc, char *argv[])
{
char php_path[800], *file_to_run, *dir;
//Get the path to php (*php_path)..
GetPrivateProfileString("settings", "php_path", "C:\\php4\\php.exe", php_path, 800, "D:\\Programming\\TeamOrga\\dev\\win-remote\\config.ini");
dir = argv[0];
//Extract basename..
basename(dir);
printf("Basename: %s\n", dir);
system("PAUSE");
file_to_run = "D:\\Programming\\TeamOrga\\dev\\TeamOrga.php-gtk";
ShellExecute(NULL, NULL, php_path, file_to_run, NULL, SW_HIDE);
return 0;
}
Zuletzt bearbeitet: