Assembler: String in Textdatei suchen

  • Hola!
    Ich will das folgende kleine Programm etwas modifizieren -
    Funktion des Programms: öffnet eine Datei sucht nach nem String und gibt die Anzahl an wie oft der String gefunden wurde.
    Und zwar will ich die Datei in der gesucht werden soll und den String der gesucht werden soll am DOS-Prompt angeben und nicht wie im unteren Code - hier ist die Datei und der String schon im Quellcode verankert
    filename db 'Kapitel1.txt',0h
    string db 'der'


    kann mir da einer weiterhelfen?

  • glaub nicht, dass es noch viele informatiker gibt, die assembler können. :D
    (die freaks mögen mir diese aussage verzeihen)

    wenn du hier keine antwort bekommst, würd ichs im elektrotechnikerforum versuchen, da gibts sicher noch einige die das können.

  • Könnte es vermutlich schon (noch), aber warum muß es Assembler sein ?
    In C ginge es in ein paar Minuten, und jeder könnte helfen.
    Ohne lange Einarbeitungszeit ... für die Assemblervariante würd' ich vermutlich wegen mangelnder Übung stundenlang brauchen.
    Da ist die Zeit viel besser in Algorithmenverbesserung angelegt.


    Trading for a living [equities,futures,forex]

  • Zitat von Lord Binary

    Könnte es vermutlich schon (noch), aber warum muß es Assembler sein ?
    In C ginge es in ein paar Minuten, und jeder könnte helfen.
    Ohne lange Einarbeitungszeit ... für die Assemblervariante würd' ich vermutlich wegen mangelnder Übung stundenlang brauchen.
    Da ist die Zeit viel besser in Algorithmenverbesserung angelegt.

    er wird schon wissen warum es gerade assembler sein muss.
    Vielleicht eine Hausaufgabe, eine erweiterung zu einem bestehenden programm, oder einfach Anforderung vom Auftraggeber.

    Wenn er einfach nur ein paar substrings zählen wollte, könnte er das auch in python mit nem Einzeiler erreichen.

    Ansonsten geht es mir wie dir: Assembler hab ich zwar gelernt, aber ausserhalb der Ausbildung so gut wie nie verwendet. Ein Programm zu analysieren würde also erstmal viel nachschlagen und probieren erfordern.

    Ich bin aber zuversichtlich, dass sich noch eine helfende Hand finden wird. Schliesslich braucht man ja auf der Uni auch etwas Assembler (Übersetzerbau fällt mir da ein), und der Code scheint gut kommentiert.

    Ausserdem fühlt sich durch Buttheads Kommentar sicher einer von unseren geeks in seiner Ehre gekränkt und ist bereits fleissig am werkeln. :thumb:

    PS: Was für ein Assembler ist das denn eigentlich? Auf was für einer Machine läuft das Programm?

  • Zitat

    Und zwar will ich die Datei in der gesucht werden soll und den String der gesucht werden soll am DOS-Prompt angeben und nicht wie im unteren Code - hier ist die Datei und der String schon im Quellcode verankert


    Kurzanleitung: Du mußt die Kommandozeilen-Argumente "parsen", die stehen irgendwo zwischen 0h und 100h (ich glaub >80h, aber weiß nicht mehr genau wo) und sind durch Leerzeichen getrennt und mit CRLF terminiert (so wie Du sie halt eingibst). Eine Variante wär, diese Leerzeichen durch 0h zu ersetzen, dann hast Du gleich die nullterminierten Strings, oder Du kopierst sie in Dein eigenes Programm, mußt halt an entsprechender Stelle Speicherplatz dafür reservieren. Länge des Strings kannst Dir ja schon während dem parsen merken (Register wär wohl vorteilhaft)

    Zitat

    PS: Was für ein Assembler ist das denn eigentlich? Auf was für einer Machine läuft das Programm?


    x86...x86 ;)

    yast, SuSEconfig, apt-get and rpm - the 4 horsemen of the apocalypse

    Platform of insanity :: http://www.dose-xp.org

  • Hola
    -danke für die vielen Tipps ;)
    Ich habe das Programm etwas umgeschrieben - beim kompilieren mit Tasm und dem Linken mit Tlink gibts es keine Fehlermeldungen.
    Allerdings kann die Datei nicht geöffnet werden in der gesucht werden soll - woran kann das liegen?
    die Datei(kap1.txt) in der ich suchen will liegt im selben Verzeichniss wie das Programm.
    Also am Promt erscheint jetzt folgendes:
    Geben sie das zu suchende Wort ein: der
    In welcher Datei soll gesucht werden?: kap1.txt
    Datei konnte nicht geoeffnet werden


    Hier der Code dazu:



    Wäre für Hilfe dankbar ;)

    Grüße

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!