Programm für DOS



  • Hallo,
    ich muss ein Programm für DOS erstellen. Habe jetzt in der FAQ gelesen das nur alte IDEs DOS (16bit)unterstützen bevor ich mir jetzt die mühe mache und so etwas suche wollte ich anchfragen ob ich unter denen dann überhaupt so programmieren kann das ich die stdio.h und string.h verwenden kann... hoffe jemand kann mir sagen ob ich es besser gleich aufgeben sollte ...

    // risdos.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    #include "stdio.h"
    #include "iostream.h"
    
    #define READ "r"
    
    int main(int argc, char* argv[])
    {
    
    	FILE *macadr;
    
    	if((macadr = fopen("I:\\IT Software\\Tools\\risdos\\mac.txt","r")) == NULL)
    		printf("mac.txt konnte NICHT geoeffnet werden.\n\n");
    	else
    	{	
    		char mac[20];
    		printf("mac.txt geoeffnet.\n\n");
    		fgets(mac,13,macadr);
    		cout << "mac:" << mac <<".\n";
    
    	}
    
    	FILE *macwks;
    
    	if((macwks = fopen("I:\\IT Software\\Tools\\risdos\\mac-wks.csv","r")) == NULL)
    		printf("Datenbankdatei konnte NICHT geoeffnet werden.\n\n");
    	else
    		printf("Datenbankdatei geoeffnet.\n\n");
    
    	char wks[10];
    	cout << "Bitte geben sie den Workstationnamen an:\n";
    	cin >> wks;
    	cout << "WKS-Name:" << wks <<".\n";
    
    	fclose(macwks);
    	fclose(macadr);
    
    	//int floseall(void);
    
    	return 0;
    }
    


  • Ja diese Compiler bieten zumeist auch eine C-Standard-Library an (zumindest die in der FAQ genannten).

    BTW:

    // risdos.cpp : Defines the entry point for the console application.

    Mit "console" ist dann aber auch ganz sicher nicht gemeint, dass du in der Windows-Konsole eine textbasierte Anwendung ausführen willst? Also du baust auch wirklich ein DOS-Programm?

    MfG SideWinder



  • also ich kann dir jetzt nicht so ganz folgen 🙂 aber ich habs selbst hinbekommen mit visual c++ für win32 konsole geschrieben und dann mit turbo c++ version 1.0 kompiliert ... hab jetzt allerdings nen prob ... wie erkenn aus einer csv datei ein trennzeichen ... meine jetzige lösung ist irgendwie nich so ganz ...

    #include "stdafx.h"
    #include "stdio.h"
    #include "iostream.h"
    #include "stdlib.h"
    #include "string.h"
    
    char *strtok( char *str1, const char *str2 );
    
    void DateiLesen(char *, char **);
    
    void main(void){
    
    char *dateiInhalt = 0;
    DateiLesen("I:\\IT Software\\Tools\\risdostest\\mac-wks.csv",&dateiInhalt);
    
    char delims[] = ";";
    char *result = NULL;
    result = strtok( dateiInhalt, delims );
    while( result != NULL ) {
    printf( "result is \"%s\"\n", result );
    result = strtok( NULL, delims );
    
    }
    

    er erkennt jetzt halt immer nur das symikolon aber ich habe immer zwei datensätze in einer zeile durch komma getrennt und dann soll er in die nächte gehn und die dann auch wieder nehmen

    ich würde gerne das das die datensätze in ein array kommen ... hmm hoffe jemand kann es nachvollziehen

    beispieldatensatz client01;0124eacd3129



  • Was macht der Funktionskopf von strtok() in deinem Programm? Hast du da eine eigene Version geschrieben? Oder wiederholst du bloß den Inhalt aus der string.h?

    Also eine CSV-Datei mit einer bestimmten Anzahl an Einträgen pro Datensatz kannst du entweder per strtok() auslesen - so wie du es gemacht hast:

    const char* delims = ";";
    char* token;
    
    token = strtok(ausgelesene_zeile,delims);
    while(token != NULL)
    {
        printf("%s\n",token);
        token = strtok(NULL,delims);
    }
    

    oder aber auch so (vor allem wenns sowieso nur einen Trenner gibt):

    char client[20];
    char sonstwas_id[20];
    
    sscanf(ausgelesene_zeile,"%s;%s",client,sonstwas_id);
    

    MfG SideWinder


Anmelden zum Antworten