Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » zeichen char array ersetzen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
17.07.2005, 01:52 Uhr
~Markus85
Gast


ich fange grad erst an c++ zu programmieren
und habe ein problem ich bekomme die verzeichnissangabe in der konsole
in folgender form


char buf[255];

mit folgenden inhalt /ordner1/unterordner/

brauchen tue ich aber für die funktion

WIN32_FIND_DATA fd;
HANDLE hfind;

folgenden aufbau

\\ordner1\\unterordner\\*.*

komme dabei nicht weiter
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.07.2005, 10:29 Uhr
Pler
Einer von Vielen
(Operator)



C++:

char newbuf[255];

i = 0;
j=0;
while( buf[i] != 0 )
{
  if( buf[i] == '/' )
  {
    newbuf[j] = '\';
    newbuf[j+1] = '
\';
    j+=2;
  }
  else
  {
     newbuf[j] = newbuf[i];
     j++;
  }
  i++;
}
newbuf[j] = 0;  // oder j+1?

strcat( newbuf , "*.*" );



Einfach mal so reingetipptt, nicht probiert.
Vielleicht gibts ja auch ne funktion um die zeichen zu ersetzen, ist mir aber jetzt nicht eingefallen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.07.2005, 10:41 Uhr
Reyx
IT-fetischistischer Wurstsalat mit rostigem Berghorn
(Operator)


@Markus85
Hast du es denn mal versucht?
Windows kommt in Pfadangaben auch mit normalen Slashes zurecht ("/"). Intern werden die nur in Backslashes umgewandelt!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.07.2005, 16:45 Uhr
~Markus85
Gast


so habe deinen code mal eingebaut aber habe damit ein problem
ich habe 2 mal eine ausgabe auf die console eingefügt
vor dem ersetzen zeigt er das verzeichnis an
z.b.ordner1/ordner2/
nach dem ersetzen hab ich dann irgendwelche zeichen und dann *.*


C++:
void showdir(const char *directory)
{
        WIN32_FIND_DATA fd;
        HANDLE hfind;

        char buf[255];
        char newbuf[255];
        int i;
        int j;

        strcpy(buf,directory);

        i = 0;
        j = 0;
        while( buf[i] != 0 )
         {
           printf ("\n\n vor dem Ersetzen: %s,\n\n",buf);
           if( buf[i] == '/' )
           {
             newbuf[j] = '\\';
             newbuf[j+1] = '\\';
             j+=2;
           }
           else
           {
             newbuf[j] = newbuf[i];
             j++;
           }
             i++;
           }
             newbuf[j] = 0;  // oder j+1?

             strcat( newbuf , "*.*" );

             printf ("\n\n Nach dem Ersetzen:  %s,\n\n",newbuf);

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.07.2005, 16:55 Uhr
Tommix



Hallo,

C++:
newbuf[j] = newbuf[i];
muß wohl
C++:
newbuf[j] = buf[i];
heißen.
Aber mach erst mal, was Reyx sagt. Bist du sicher, daß da ein doppelter Backslash rein soll?

- Tommix

Dieser Post wurde am 17.07.2005 um 16:56 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
17.07.2005, 17:23 Uhr
~Markus85
Gast


@tommix danke das war der fehler gewesen

und ja bin mir sicher das dort ein doppelt backslash rein soll

ich weis nur nicht genau ob der pfad dann ordner1\\ordner2\\*.* heissen soll
oder \\ordner1\\ordner2\\*.*

es stand jedenfall in der beschreibung der funktion das die ordner so getrennt werden soll
zu der funktion selbst hab ich im internet bis jetzt nichts gefunden
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
17.07.2005, 18:09 Uhr
Pler
Einer von Vielen
(Operator)


@Tommix:
Erst mal Danke für die Fehlersuche in meinem Code
Hätt ich selber wohl nicht gesehen!

@Markus85:
ordner1\\ordner2\\*.*
\\ordner1\\ordner2\\*.*
Wenn die Funktion vernünftig geschrieben ist, dann muss sie beides nehmen.
Das este als relative Pfadangabe zum aktuellen Working Dir.; das zweite als absolute Pfadangabe.

Dieser Post wurde am 17.07.2005 um 18:10 Uhr von Pler editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
17.07.2005, 18:15 Uhr
~Markus85
Gast


aber ein problem habe ich noch

ich muss das ganze noch in den string "body" bekommen

aufruf der funktion hab ich jetzt geändert


C++:
void showdir(const char *directory, std::string body)



und das ende der funktion nach


C++:
                sprintf(newbuf,"<A HREF=\"%s%s\">%s</a>\t\t%d\n",buf,fd.cFileName,fd.cFileName,fd.nFileSizeLow);
                  body += "<br>BLA"; //+ newbuf;//funktioniert nicht
             printf ("\n\n der LINK %s\n\n",newbuf);
                if(!FindNextFile(hfind,&fd))
                        break;
        }

        FindClose(hfind);



nun wie bekomme ich denn newbuf in body?
und wie bekomme ich body wieder aus meiner funktion
wollte es erst mit return machen dann muss ich aber in void showdir das void ersetzen finde aber nichts wie der wert bei einem string heißen muss

übrigens pointer auf body klappte nicht hatte ich zuerst probiert aber es kam dann ne fehlermeldung illegal konvertierung von std::string nach std::string*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
17.07.2005, 18:26 Uhr
Pler
Einer von Vielen
(Operator)


Schreibst du CGI in C?

Also ich kann keinen Fehler sehn, das muss gehn.
Was für ne Fehlermeldung kommt denn?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
17.07.2005, 18:54 Uhr
~Markus85
Gast


so also folgende zeile

body += "<br>BLA" + newbuf;//funktioniert nicht




bringt mir diese fehlermeldung hervor

invalid operands of types `const char[8]' and `char[255]' to binary `operator+'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: