You are not logged in.

  • Login

1

Sunday, December 17th 2006, 6:11pm

LPSTR's zusammensetzen in eine neue LPSTR

Hallo, coding-community.
Jetzt verzweifle ich langsam nach ner halben Stunde googlen
und finde einfach keien Möglichkeit, LPSTR's zusammenzusetzen!

C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <windows.h>
#include <stdio.h>
#define BUFSIZE 8192
 
int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpCmdLine,
                    int Commands) {
 
  // .....  Windows-Benutzername ermitteln.
  LPTSTR lpszSystemInfo; // pointer to system information string
  DWORD cchBuff = BUFSIZE; // size of computer or user name
  TCHAR tchBuffer[BUFSIZE]; // buffer for string
  DWORD fehler;
  lpszSystemInfo = tchBuffer;
  GetUserName(lpszSystemInfo, &cchBuff);
 
  // .....  benutzername in einer MessageBox ausgeben.
  MessageBox (0, lpszSystemInfo, "Benutzername", MB_ICONINFORMATION);
 
  // .....  Ab hier klappt alles!
  HANDLE fHandle;
  WIN32_FIND_DATA wfd;
 
  fHandle = FindFirstFile("C:/Dokumente und Einstellungen/X/Eigene Dateien/Eigene Bilder/*", &wfd); 
  FindNextFile (fHandle, &wfd); 
  while (FindNextFile(fHandle, &wfd)) {
    if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
      MessageBox (0, wfd.cFileName, "Folgende Unterverzeichnisse gefunden:", 0);
    } else {
      int ok = MessageBox (0, wfd.cFileName, "Datei löschen?", MB_OKCANCEL|MB_ICONQUESTION);
      if (ok == 1) {
        remove (wfd.cFileName);
        MessageBox (0, wfd.cFileName, "Datei gelöscht!", MB_ICONINFORMATION);       
      } else {
        MessageBox (0, wfd.cFileName, "Datei nicht gelöscht!", MB_ICONINFORMATION);    
      }
    }
  }
  FindClose(fHandle);
 
  return 0;   
}


Auf Zeile 33

C Quellcode

1
remove (wfd.cFileName);


würde ich gerne

C Quellcode

1
remove ("C:/Dokumente und Einstellungen/X/Eigene Dateien/Eigene Bilder/"+wfd.cFileName);


draus machen, aber das gibt dann einen
33 C:\Dokumente und Einstellungen\X\Desktop\Neuer Ordner (2)\main.cpp invalid operands of types `const char[63]' and `CHAR[260]' to binary `operator+'

Kann mir jemand sagen, wie ich die das zusammengekettet bekomme??

2

Sunday, December 17th 2006, 7:28pm

Problembericht senden|nicht senden!
:'((((((((((((((((((((((((((((((((((((((

C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <windows.h>
#include <stdio.h>
 
int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpCmdLine,
                    int Commands) {
 
  // .....  Pfad in einer MessageBox ausgeben.
  char* pfad = "C:/Dokumente und Einstellungen/";  strcpy(pfad, "X/Eigene Dateien/Eigene Bilder/");
  MessageBox (0, pfad, "Pfad", MB_ICONINFORMATION);
 
  return 0;   
}


Wieso hilft mir nur keiner???

Edit

C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <windows.h>
#include <stdio.h>
 
int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpCmdLine,
                    int Commands) {
 
  // .....  Benutzername in einer MessageBox ausgeben.
  char pfad[200] = "C:/Dokumente und Einstellungen/";
  strcpy(pfad, "X/Eigene Dateien/Eigene Bilder/");
  MessageBox (0, pfad, "Pfad", MB_ICONINFORMATION);
 
  return 0;   
}


Gibt "X/Eigene Dateien/Eigene Bilder/" in der MessageBox aus!

Edit 2

Hab's jetzt geschafft. (str_cat)
Danke für eure Hilfe -,-

3

Sunday, December 17th 2006, 8:01pm

Hallo,

wenn Du eine C Variante möchtest, dann z.B. so

char buffer[1024];
sprintf( buffer, "%s%s", pfad, "C:/Dokumente und Einstellungen/X/Eigene Dateien/Eigene Bilder/");

In buffer sind jetzt die beiden Zeichenketten drin.

Besser ist aber

std::string sText = "C:/Dokumente und Einstellungen/X/Eigene Dateien/Eigene Bilder/";
sText += wfd.cFileName;

Jetzt ist sind beide Zeichenketten in sText drin.
sText vom Typ std::string kann man dann wieder in einen const char*
umwandeln.

const char* cText = sText.c_str();

oder man macht es über Streams.

4

Sunday, December 17th 2006, 8:10pm

OK, probier ich gleich mal aus.
Sobald ich jetzt mein nächstes Problem gelöst habe...

C Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <windows.h>
#include <stdio.h>
#define BUFSIZE 8192
 
int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpCmdLine,
                    int Commands) {
 
  // .....  Windows-Benutzername ermitteln.
  LPTSTR lpszSystemInfo; // pointer to system information string
  DWORD cchBuff = BUFSIZE; // size of computer or user name
  TCHAR tchBuffer[BUFSIZE]; // buffer for string
  DWORD fehler;
  lpszSystemInfo = tchBuffer;
  GetUserName(lpszSystemInfo, &cchBuff);
 
  // .....  Pfad zu den Gemeinsamen Bildern erstellen.
  char pfad[200] = "C:/Dokumente und Einstellungen/";
  char* datei;
  strcat (pfad, lpszSystemInfo);
  strcat (pfad, "/Eigene Dateien/Eigene Bilder/");
 
  // .....  Ab hier klappt alles!
  HANDLE fHandle;
  WIN32_FIND_DATA wfd;
 
  fHandle = FindFirstFile("C:/Dokumente und Einstellungen/X/Eigene Dateien/Eigene Bilder/*", &wfd); 
  FindNextFile (fHandle, &wfd); 
 
  int ok;
  while (FindNextFile(fHandle, &wfd)) {
    datei = pfad;
    MessageBox (0, datei, "------ 1", MB_ICONINFORMATION);
    if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
      MessageBox (0, wfd.cFileName, "Folgende Unterverzeichnisse gefunden:", 0);
    } else {
      strcat (datei, wfd.cFileName);
      remove (datei);
      MessageBox (0, datei, "------ 2", MB_ICONINFORMATION);
 
      ok = MessageBox (0, wfd.cFileName, "Datei löschen?", MB_OKCANCEL|MB_ICONQUESTION);
      if (ok == 1) {
        MessageBox (0, datei, "Datei gelöscht!", MB_ICONINFORMATION);       
      } else {
        MessageBox (0, wfd.cFileName, "Datei nicht gelöscht!", MB_ICONINFORMATION);    
      }
    }
  }
  FindClose(fHandle);
 
  return 0;   
}


Hier scheint

C Quellcode

1
strcat (datei, wfd.cFileName);


Den Namen der aktuell durchlaufenden Datei auch an
die Varieble pfad anzuhängen, was es aber nicht soll.
Wieso???

Similar threads

Social bookmarks