Ein Programm in Visual Basic schreiben! HILFE

Ich habe ein Problem. Ich soll ein Programm schreiben womit ich Datein vom Server auf den aktuellen PC kopieren kann, das Programm soll aber noch untersuchen ob die erforderlichen Datein sich schon auf den PC befinden oder ob sie kopiert werden müssen! Meinen Kopiervorgang habe ich schon. Ich benötige nur noch die unterscheidung zwischen Vorhanden und noch kopieren!

Es sieht schonmal so aus:
#include „stdafx.h“
#include „iostream.h“
#include „fstream.h“
#include „conio.h“
#include „windows.h“

void main(void)
{
bool copyfile;

copyfile=CopyFile(„C:\Praktiktest\Test1\Test1.txt“,„C:\Praktiktest\Test2\Test2.txt“,true);

if
{
copyfile=true;
printf(„Datei kopiert\n“);
}
else
{
copyfile=false;
printf(„Datei nicht kopiert\n“);
}

getch();
}

Aber das geht nicht so ganz! Bis auf das Kopieren.

Ich danke schonmal für die Hilfe!

Servus Eric

Ich könnte dir schon sagen, wie man mit VB feststellen kann, ob eine Datei schon existiert - aber was hat das von dir im Titel erwähnte Visual Basic mit deinem C-Programm zu tun?

Möchtest du nicht eigentlich eine Lösung in C haben? (das ich nicht beherrsche)

MfG
Roland

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ich soll mit Visual Basic C++ 5 ein Programm schreiben, ich mache gerade Praktikum und das ist meine erste Aufgabe, aber ich arbeite sonst mit Borland C++ und nicht Mit Visual1! Deshalb komme ich mit Visual nicht soganz zurecht. Sag mir bitte wie das geht mit dem Vergleich.

THX

Ich soll mit Visual Basic C++ 5 ein Programm schreiben, ich
mache gerade Praktikum und das ist meine erste Aufgabe, aber
ich arbeite sonst mit Borland C++ und nicht Mit Visual1!
Deshalb komme ich mit Visual nicht soganz zurecht. Sag mir
bitte wie das geht mit dem Vergleich.

Visual Basic C++ gibt’s nicht! (zumindest hab ich noch nie davon gehört)

Ich kenne eine Programmiersprache namens „Visual Basic“ und eine andere namens „C++“ bzw. auch „Visual C++“.

Da dein Programmcode in C++ geschrieben wurde (sicher nicht in Visual Basic), nehme ich an, dass du die Hilfe in C++ brauchst. Da ich aber von den genannten Programmiersprachen nur Visual Basic beherrsche, kann ich dir in dem Fall leider nicht helfen.

MfG
Roland

Hubs sorry ein Fehler von mir ich meine natürlich Visual C++ 5! Sorry, aber die Programmiersprache ist die selbe. Kannst du mir jetzt helfen.

Hubs sorry ein Fehler von mir ich meine natürlich Visual C++
5! Sorry, aber die Programmiersprache ist die selbe. Kannst du
mir jetzt helfen.

Wie bereits 2 Mal geschrieben: Von C++ hab ich keine Ahnung!

Ich hätte dir nur bei Visual Basic helfen können. Sorry … :frowning:

MfG
Roland

Na ok aber trotzdem danke.

Hi Eric.
Deine if-Anweisung ist falsch formuliert. Versuchs mal so:

...
if (copyfile==true)
{
 printf("Datei kopiert\n");
}
...

(Und nimm bei Vergleichen immer „==“ statt „=“ !)

cu
Klaus

Vielen Dank Klaus,

jetzt funktioniert es aus, aber ich habe wieder ein neues Problem, ich soll jetzt noch via „Show“ den Ordnerinhalt anzeigen lassen doch da kommt ein Fehler! Irgendwie konvertierung von int nach char nicht möglich???
Schau: static int show („C:\Praktiktest\Test2“);
Dann beim Linken kommt der Fehler was ist Falsch, muss es in eine Klasse?

Schau: static int show

(„C:\Praktiktest\Test2“);

Allein deswegen sollte kein Fehler
kommen, kannst Du ein bisschen mehr
Kontext posten?

Die Fehlermeldung heisst genau das was
sie aussagt, irgendwo wird ein int
erwartet, es liegt aber ein char
vor.Müsste eigentlich auftreten bei
etwas wie

char ergebnis;

ergebnis = show();

Oder in show selbst (ist das eine
selbstgeschriebene Funktion oder eine
Bibliotheksfunktion?)

#include „stdafx.h“
#include „iostream.h“
#include „fstream.h“
#include „conio.h“
#include „windows.h“

int main(int argc, char* argv[])
{
WIN32_FIND_DATA DateiDaten; //Das ist eine Struktur zum Speichern von diversen Dateiinfos
HANDLE hSuche; //Ein Handle für die Dateisuche.
DWORD dwAttrs;
char szDirPath[] = „C:\Praktiktest\Test1\“;
char szNewPath[MAX_PATH];
char szHome[MAX_PATH];

bool fFinished = FALSE;

hSuche = FindFirstFile(„C:\Praktiktest\Test1\*.*“, &DateiDaten); //Finde die erste Datei im Verzeichnis D:\temp und schreibe die Dateiinfos in den Zeiger Dateidaten

if (hSuche == INVALID_HANDLE_VALUE) //Fehlerabbruch wenn keine Dateien gefunden
{
printf(„Keine Datei gefunden“);
}

while (!fFinished)
{
lstrcpy(szNewPath, szDirPath);
lstrcat(szNewPath, DateiDaten.cFileName);

if (CopyFile(DateiDaten.cFileName, szNewPath, FALSE))
{
dwAttrs = GetFileAttributes(DateiDaten.cFileName);

if (!(dwAttrs & FILE_ATTRIBUTE_READONLY))
{
SetFileAttributes(szNewPath,
dwAttrs | FILE_ATTRIBUTE_READONLY);
}
}

else
{
printf(„Fehler beim Anzeigen aufgetreten“);
}

if (!FindNextFile(hSuche, &DateiDaten)) //finde die nächste Datei und schreibe wieder die Dateiinfos in den Zeiger Dateidaten
{
printf("\nKopiere erforderliche Datein\n");

/*
if (GetLastError() == ERROR_NO_MORE_FILES)
{
printf("\n alle Dateien im Verzeichnis \n");
fFinished = TRUE;
}
*/}
}
/* else
{
char copyfile;
copyfile=CopyFile(„C:\Praktiktest\Test1\.*","C:\Praktiktest\Test2\.*“,true);

printf("\n %s \n",DateiDaten.cFileName); //Ausgabe des Dateinamens
*/
}
}

// Search Handle schließen.

if (!FindClose(hSuche))
{
printf(„Fehler beim Speicher löschen…“);
}

return 0;
}

Reicht dir das an Text! Es ist das Programm bis jetzt! Hilfe mir Bitte

  1. Wo finde ich das show, auf das sich
    die vorherige Frage bezog?
  2. Standard Includes sollten mit und
    nicht mit „“ angegeben werden
  3. Wenn keine Datei gefunden wurde
    kannst Du ja gleich abbrechen und musst
    gar nicht erst versuchen ein File zu
    kopieren.

#include „stdafx.h“
#include „iostream.h“
#include „fstream.h“
#include „conio.h“
#include „windows.h“

int main(int argc, char* argv[])
{
WIN32_FIND_DATA DateiDaten; //Das ist

eine Struktur zum

Speichern von diversen Dateiinfos
HANDLE hSuche; //Ein Handle für die

Dateisuche.

DWORD dwAttrs;
char szDirPath[] =

„C:\Praktiktest\Test1\“;

char szNewPath[MAX_PATH];
char szHome[MAX_PATH];

bool fFinished = FALSE;

hSuche =

FindFirstFile(„C:\Praktiktest\Test1\*.*“,

&DateiDaten); //Finde die erste Datei

im Verzeichnis D:\temp

und schreibe die Dateiinfos in den

Zeiger Dateidaten

if (hSuche == INVALID_HANDLE_VALUE)

//Fehlerabbruch wenn

keine Dateien gefunden
{
printf(„Keine Datei gefunden“);
}

while (!fFinished)
{
lstrcpy(szNewPath, szDirPath);
lstrcat(szNewPath,

DateiDaten.cFileName);

if (CopyFile(DateiDaten.cFileName,

szNewPath, FALSE))

{
dwAttrs =

GetFileAttributes(DateiDaten.cFileName);

if (!(dwAttrs &

FILE_ATTRIBUTE_READONLY))

{
SetFileAttributes(szNewPath,
dwAttrs |

FILE_ATTRIBUTE_READONLY);

}
}

else
{
printf("Fehler beim

Anzeigen aufgetreten");

}

if (!FindNextFile(hSuche,

&DateiDaten)) //finde die nächste

Datei und schreibe wieder die

Dateiinfos in den Zeiger

Dateidaten
{
printf("\nKopiere erforderliche

Datein\n");

/*
if (GetLastError() ==

ERROR_NO_MORE_FILES)

{
printf("\n alle Dateien im

Verzeichnis \n");

fFinished = TRUE;
}
*/}
}
/* else
{
char copyfile;

copyfile=CopyFile(„C:\Praktiktest\Test1\.*","C:\Praktiktest\Test2\.*“,true);

printf("\n %s

\n",DateiDaten.cFileName); //Ausgabe des

Dateinamens
*/
}
}

// Search Handle schließen.

if (!FindClose(hSuche))
{
printf("Fehler beim Speicher

löschen…");

}

return 0;
}

Reicht dir das an Text! Es ist das

Programm bis jetzt! Hilfe

mir Bitte

Das mit den " " ist egal, man kann auch machen!
Das SHOW musste ich rausnehmen, weil ich die Datein via Schleife und COPY kopieren soll.

Ich habe ein Problem. Ich soll ein Programm schreiben womit
ich Datein vom Server auf den aktuellen PC kopieren kann, das
Programm soll aber noch untersuchen ob die erforderlichen
Datein sich schon auf den PC befinden oder ob sie kopiert
werden müssen! Meinen Kopiervorgang habe ich schon. Ich
benötige nur noch die unterscheidung zwischen Vorhanden und
noch kopieren!

// vielleicht so – > in C

#include „stdafx.h“
#include „iostream.h“
#include „fstream.h“
#include „conio.h“
#include „windows.h“

// neu
#include „io.h“

void main(void)
{
bool copyfile;
int rc = S_OK;

if(_access(„C:\Praktiktest\Test2\Test2.txt“, 0) != 0)
{ // Ist nicht da
copyfile=CopyFile(„C:\Praktiktest\Test1\Test1.txt“,„C:\Praktiktest\Test2\Test2.txt“,true);
if(!copyfile) { printf(„Fehler beim kopieren RC=%i\n“, errno);
else printf(„Datei kopiert\n“);
}
else printf(„Datei vorhanden, kein Kopiervorgang\n“);

getch();
}

Danke ich werde es mal damit Probieren!