Dateityp + Daten einlesen



  • Hi mal wieder

    ich möchte ein programm schreiben, dass den dateityp (was weiß ich .abc) zugewiesen bekommen soll. ich will, dass dieser dateityp meinem proggi zugewiesen wird. sodass ich mit einem doppelklick auf eine .abc-datei den pfad der datei an das programm übergeben wird, damit ich die daten einlesen kann

    wie stell ich das an?

    und nochwas:

    ich möchte eine datei (.dll) binär - ASCII-zeichen für ascii-zeichen - in mein programm einlesen. und zwar immer in 16-zeichen-happen. sollte die datei zu ende sein und der array is noch nich voll, soll er mit dem zeichen "255" auffüllen und dann abbrechen
    ein problem an der sache ist die dll selbst. die enthält zeichen, die das einlesen abbrechen

    wie löse ich das alles??



  • Hi,

    häää 😕

    Bitte anders formulieren, das versteht kein Mensch was Du vor hast.

    Gruss Sven



  • Majestix schrieb:

    Hi mal wieder

    ich möchte ein programm schreiben, dass den dateityp (was weiß ich .abc) zugewiesen bekommen soll. ich will, dass dieser dateityp meinem proggi zugewiesen wird. sodass ich mit einem doppelklick auf eine .abc-datei den pfad der datei an das programm übergeben wird, damit ich die daten einlesen kann

    wie stell ich das an?

    Du klickst mit der rechten Maustaste auf eine .abc Datei (im Explorer), wählst den Menüpunkt "Öffnen mit..." und im darauffolgenden Dialog dein Programm (notfalls über den Button "Andere..." suchen), ein Häkchen vor "diesen Dateityp immer mit diesem Programm öffnen" und "OK".

    (Über Extras - Ordneroptionen - Dateitypen kannst du noch detaillierter angeben, wie das Programm aufgerufen werden soll)

    ich möchte eine datei (.dll) binär - ASCII-zeichen für ascii-zeichen - in mein programm einlesen. und zwar immer in 16-zeichen-happen. sollte die datei zu ende sein und der array is noch nich voll, soll er mit dem zeichen "255" auffüllen und dann abbrechen
    ein problem an der sache ist die dll selbst. die enthält zeichen, die das einlesen abbrechen

    wie löse ich das alles??

    fread() bzw. fstream::read() lesen bis zum tatsächlichen Ende der Datei ein, egal was für Zeichen da drinstehen. Wieviel erfolgreich gelesen werden konnte, kannst du aus dem Rückgabewert des fread()-Aufrufes bzw. über fstream::gcount() abfragen.



  • @cstoll
    1. frage:

    ich weiß, wie man ein prog einem typ zweist. ich weiß nur nicht, wie ich den pfad zur betreffenden datei in einen string bekomme! ich hab bei MFC keine main gefunden...



  • Wozu brauchst Du den Pfad zur betreffenden Datei? Wenn Dein Programm mit dem Dateityp .abc verknüft ist kümmert sich Windows darum. Du musst nur im Prorgamm die entsprechenden Funktionen zum Einlesen bereitstellen. Wenn ich mich nicht täusche kann man das über die Serialisierungsfunktionen regeln. Ebenfalls wenn ich mich nicht täusche bekommt das Programm den Dateipfad als Parameter übergeben.
    Du kannst ja auch beim erstellen des Projektes im Visual C die Dateiverknüpfungen mit anlegen.



  • das ist neuland für mich

    Ebenfalls wenn ich mich nicht täusche bekommt das Programm den Dateipfad als Parameter übergeben.
    

    wie heißt dieser parameter? und wie komm ich an ihn ran?



  • Majestix schrieb:

    das ist neuland für mich

    Ebenfalls wenn ich mich nicht täusche bekommt das Programm den Dateipfad als Parameter übergeben.
    

    wie heißt dieser parameter? und wie komm ich an ihn ran?

    Soweit ich weiß benötigst Du den gar nicht. Die Datei ist mit Deiner Anwendung verknüpft, die Zugriffe zum Lesen und Schreiben werden z.B. mit Hilfe der Serialisierung gemacht.



  • Wenn du mit einer "normalen" Applikation arbeitest, hast du die Kommandozeile suaber aufgedröselt in den argc/argv Parametern der main() bzw. im lpCmdLine der WinMain(). Bei MFC-Programmen kannst du z.B. per GetCommandLine() oder ParseCommandLine() die Kommandozeile verarbeiten.



  • Und zum einlsen noch ein Nachtrag:

    Das ist kein Textdatei und deshalb kannst du die nicht Zeichen für Zeichen einlesen.

    Du musst sie binär einlesen.
    Ein Text wird in der Regel durch ein oder zwei Zeichen (je nach OS) abgeschlossen.
    \r\n. SChau dir mal die Funktionen an welche den Text auslesen. Da steht dann das nur bis zum Zeichen X gelesen wird.
    Da aber Binärdatein solche Zeichen beinhalten können geht das einlesen von Binärdateien mit den Textlesefunktionen nicht.



  • eim einlesen benutze ich fopen(file,"rb+");
    also ich bin mir dessen bewusst, dass ich binär einlesen muss

    kann mir bitte jm ein beispiel zeigen, wie das alles gehn könnte?


Anmelden zum Antworten