Avatar billede jakobdo Ekspert
19. december 2003 - 10:41 Der er 9 kommentarer og
1 løsning

Hvordan finder jeg filnavn udfra strengen: c:\bla\bla.exe

Hej,
jeg har en streng, som indeholder:

c:\bla\bla.exe
Jeg vil herefter ende med at have en streng som indeholder bla.exe

Jeg har forsøgt mig med følgende:

char streng1[] = "c:\\bla\\bla.exe";
char * streng2;
streng2 = strrchr(streng1,'\\');
printf("%s\n",streng2+1);

Dette virker ikke helt... Nogle som lige kan modificere...

Hvis jeg laver dette:
printf("%s\n",streng2+1);

Får jeg printet \bla.exe og jeg vil kun have bla.exe
Avatar billede arne_v Ekspert
19. december 2003 - 10:50 #1
Øh ?

#include <stdio.h>
#include <string.h>

int main()
{
  char streng1[] = "c:\\bla\\bla.exe";
  char * streng2;
  streng2 = strrchr(streng1,'\\');
  printf("%s\n",streng2+1);
  return 0;
}

giver kun:

bla.exe

kun mig...
Avatar billede jakobdo Ekspert
19. december 2003 - 10:57 #2
Hmm... Måske det skyldes at jeg bruger det i en funktion, hvor char steng1 faktisk er af typen: LPSTR lpstr??
Avatar billede arne_v Ekspert
19. december 2003 - 11:00 #3
LPSTR burde være OK.

Men du husker at kalde med streng2+1 og ikke med streng2 ??
Avatar billede jakobdo Ekspert
19. december 2003 - 11:01 #4
Det er en videre udvikling af mit spørgsmål fra i går...

bool __stdcall Proc( DWORD dw, WORD alwaysZero, LPSTR lpstr, LPARAM lParam )
{
  char * pch;
  pch = strrchr(lpstr,'\\');
  printf( "%s\n", pch+1);
  return true;
}
Avatar billede arne_v Ekspert
19. december 2003 - 11:07 #5
Og den skriver ud med "\" forrest ?
Avatar billede jakobdo Ekspert
19. december 2003 - 11:12 #6
Nej, den fejler... Hvis jeg ændrer til pch (uden +1) skriver den med \bla.exe
Avatar billede arne_v Ekspert
19. december 2003 - 11:20 #7
Prøv lige at skrive lpstr ud og se om der er nogen som ikke indeholder
"\" !

(NULL + 1 er ikke en valid pointer)
Avatar billede jakobdo Ekspert
19. december 2003 - 11:21 #8
Ahhh... Jeg har faktisk lige kodet så den fjernede 3 strenge som indeholdt NULL... :o)
Avatar billede jakobdo Ekspert
19. december 2003 - 11:22 #9
Damn, min kode var næsten rigtig, men langt fra korrekt... :o)
Lægger du et svar ARNE_V! (min redning igen igen...)
Avatar billede arne_v Ekspert
19. december 2003 - 11:24 #10
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





White paper
Tidsbegrænset kampagne: Overvejer du at udskifte eller tilføje printere i din forretning? Vi kan tilbyde én eller flere maskiner gratis