Archief - [C] Extract filename from filepath

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

AliChemicali

Legacy Member
Hallo!

Ik ben opzoek hoe ik een substring van 'C:\test.txt' kan vinden.

Alles voor '\' zou wegmoeten zo dat er 'test.txt' overblijft.


Mvg,
Vincent

Fraggie

Legacy Member
Ik zou voorstellen om te matchen met strstr(source, match); en dan de pointer opschuiven met 3. Merk op dat best werkt met c:\\test.txt ipv c:\..

AliChemicali

Legacy Member
Fraggie zei:
Ik zou voorstellen om te matchen met strstr(source, match); en dan de pointer opschuiven met 3. Merk op dat best werkt met c:\\test.txt ipv c:\..

Pff da benk dus ook al te weten gekomen kank eerst nen replace weer doen zucht zucht c sucks

Fraggie

Legacy Member
MaSSaSLaYeR zei:
Pff da benk dus ook al te weten gekomen kank eerst nen replace weer doen zucht zucht c sucks
Wat wil je juist gaan programmeren?
Btw mijn opmerking slaat enkel op literals.

AliChemicali

Legacy Member
Fraggie zei:
Wat wil je juist gaan programmeren?
Btw mijn opmerking slaat enkel op literals.

Ben een IRC Client aant maken in console waarbij je ook files kunt share via DCC

Fraggie

Legacy Member
MaSSaSLaYeR zei:
Ben een IRC Client aant maken in console waarbij je ook files kunt share via DCC
Dan mis je toch een laag van abstractie om snel vooruit te gaan. Want met tijd zal je waarschijnlijk threads en sockets (en beter) nodig hebben. Best overstappen naar een OOP taal: C++, Java, Python 3, C# ..

AliChemicali

Legacy Member
Fraggie zei:
Dan mis je toch een laag van abstractie om snel vooruit te gaan. Want met tijd zal je waarschijnlijk threads en sockets (en beter) nodig hebben. Best overstappen naar een OOP taal: C++, Java, Python 3, C# ..

Is allemaal al af :) Maar ik heb alle commands hard coded gedaan en ben nu de user input aan het fixen dus veel string manipulaties.

AliChemicali

Legacy Member
Fraggie zei:
Azo, van welke libraries heb je dan zoal gebruik gemaakt?

#pragma comment(lib,"Ws2_32.lib")

Heb het niet under ubuntu gemaakt heb wel beetje spijt van naart schijnt zijn die threads daar makkelijker in?

Fraggie

Legacy Member
MaSSaSLaYeR zei:
Heb het niet under ubuntu gemaakt heb wel beetje spijt van naart schijnt zijn die threads daar makkelijker in?
Eenmaal je weet wat threads zijn, blijft dat het zelfde. Maar je inwerken in de Win32 API is natuurlijk een hele boterham op zich. Child processen creëren daarentegen is wel een wereld van verschil in linux (0 parameters) t.o.v. Windows (10 parameters).

Success nog :)

AliChemicali

Legacy Member
Fraggie zei:
Eenmaal je weet wat threads zijn, blijft dat het zelfde. Maar je inwerken in de Win32 API is natuurlijk een hele boterham op zich. Child processen creëren daarentegen is wel een wereld van verschil in linux (0 parameters) t.o.v. Windows (10 parameters).

Success nog :)

Thanks :D sockets zen nu wel al goed onder knie, ik zeg het die string manipulatie is meeste werk :p

Code found:

char *extract_filename(char *str)
{
int ch = '\\';
size_t len;
char *pdest;
char *inpfile = NULL;

// Search backwards for last backslash in filepath
pdest = strrchr(str, ch);

// if backslash not found in filepath
if(pdest == NULL )
{
printf( "Result:\t%c not found\n", ch );
pdest = str; // The whole name is a file in current path?
}
else
{
pdest++; // Skip the backslash itself.
}

// extract filename from file path
len = strlen(pdest);
inpfile = (char *)malloc(len+1); // Make space for the zero.
//
strncpy(inpfile, pdest, len+1); // Copy including zero.
return inpfile;
}
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan