String auswerten in C ?

Dieses Thema im Forum "Webmaster Hilfe / Programmierer Forum" wurde erstellt von HightronicDesign, 04.02.2015.

  1. #1 HightronicDesign, 04.02.2015
    HightronicDesign

    HightronicDesign Intel Inside

    Dabei seit:
    19.06.2010
    Beiträge:
    662
    Zustimmungen:
    0
    Ort:
    127.0.0.1
    hi Leute,

    hab da ein kleines Problem. Und zwar habe ich aus einer sehr großen Datei geschafft eine Zeile die ich brauche so suchen zu lassen dass diese dann in ein Array gespeichert werden konnte.

    Sieht jetzt so aus :

    Code:
    .text           0x00000000      0xb3c load address 0x11000000
    Jetzt geht es darum, dass ich diese HEX Zahl brauche (0xb3c), welche sich natürlich immer ändert. Ich möchte sie in eine Variable dann als Dezimalzahl sichern.

    Nur leider kann ich bisher keinen Weg finden diese auszulesen, besonders weil in dieser Zeile noch andere HEX Zahlen vorhanden sind.
    Als regel kann ich schon sagen dass es jedes mal die zweite Hex Zahl ist die ich brauche, allerdings finde ich keinen Weg das umzusetzen.

    Weiss da jemand vllt was dazu ?

    LG
     
  2. AdMan

    schau mal hier: Windows-Wartungs-Tool. Viele Probleme lassen sich damit einfach beheben. Oftmals ist der PC dann auch schneller!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  3. Lotus

    Lotus Erfahrener Benutzer

    Dabei seit:
    17.02.2007
    Beiträge:
    2.428
    Zustimmungen:
    0
    Leider ist deine Formatierung des Codebeispiels ziemlich für die Katz, so dass es schwer ist wirklich eine konkrete Lösung vorzuschlagen. Was ist z.B. der Anfang mit ".text" ? Wie viele Leerzeichen sind wirklich dazwischen etc.

    Es wäre z.B. wichtig zu wissen, ob der Anfang immer .text ist oder ob sich das auch ändern kann.

    An sich ist es aber gar nicht so schwierig. Der Grundgedanke ist einfach nach der zweiten Hexzahl zu suchen. Die Hexzahl solltest du an dem Prefix 0x erkennen.

    Eigentlich sollte dieser Post dir weiterhelfen: Is there a C function to find the second occurrence of substring in string? - Stack Overflow
     
  4. #3 Dark-Nightmare, 05.02.2015
    Dark-Nightmare

    Dark-Nightmare Erfahrener Benutzer

    Dabei seit:
    21.01.2007
    Beiträge:
    1.807
    Zustimmungen:
    0
    Ort:
    Hamburg
    Hi,

    @Lotus

    Wenn ich das .text so lese, würde ich spontan an Assembler denken.

    @HightronicDesign

    Mein erster Gedanke:

    Wenn die Zeilen immer so aussehen und du diese bereits in eine Array gespeichert hast, würde ich mir nun ein Struct erstellen.

    Dort würde ich den eingelesenes String aufteilen und die Elemente einzeln abspeichern. Als Trennzeichen würde ich über das Leerzeichen gehen. Dann hast du innerhalb des Structs alles zur Verfügung.

    Hier mal ein kleines Beispiel:

    Code:
    #include <stdio.h>
    #include <string.h>
    
    void fillStruct();
    
    char str[] = ".text           0x00000000      0xb3c load address 0x11000000";
    char trennzeichen[] = " ";
    char *ptr;
    
    struct array {
        char text[10];
        char hex1[10];
        char hex2[10];
        char load[10];
        char adress[10];
        char hex3[11];
    };
    
    struct array string;
    
    void fillStruct(){
        ptr = strtok(str,trennzeichen);
        
        for (int i = 0; i < 6; i++){
            switch(i){
                case 0: strcpy(string.text, ptr); break;
                case 1: strcpy(string.hex1, ptr); break;
                case 2: strcpy(string.hex2, ptr); break;
                case 3: strcpy(string.load, ptr); break;
                case 4: strcpy(string.adress, ptr); break;
                case 5: strcpy(string.hex3, ptr); break;
            }
            ptr = strtok(NULL, trennzeichen);
        }
    }
    
    int main(int argc, const char * argv[]) {
        fillStruct();
        printf("%s\n%s\n%s\n%s\n%s\n%s\n",string.text,string.hex1,string.hex2,string.load,string.adress,string.hex3);
        return 0;
    }
     
  5. #4 xandros, 05.02.2015
    xandros

    xandros IT Consultant, Cisco Registered Partner
    Moderator

    Dabei seit:
    05.07.2007
    Beiträge:
    25.891
    Zustimmungen:
    91
    Ort:
    Umkreis Duisburg, neben Mannheim, hinter Hamburg
    .... dann braucht man nur die Anzahl der Zeichen wissen die man benoetigt und den Index des ersten Zeichens - sprich Startposition und die darauf folgenden benoetigten Zellen innerhalb des Arrays. Das reicht schon um die Zeichen aus dem Array herauszufiltern.
    Beginnt der Wert z.B. bei Index 20 und ist immer 5 Zeichen lang, braucht man einfach nur die Werte aus den Array-Zellen 20-24 auslesen.
     
  6. AdMan

    Es ist generell erstmal empfehlenswert alle ggf. veralteten oder fehlerhaften Treiber zu scannen und auf neue zu aktualisieren. Hier kannst du einen Treiber-Scanner downloaden. Das erspart oftmals viel Ärger und hilft gegen diverse Probleme.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
Thema: String auswerten in C ?
Besucher kamen mit folgenden Suchen
  1. string in c auswerten

Die Seite wird geladen...

String auswerten in C ? - Ähnliche Themen

  1. C# und MySQL

    C# und MySQL: Hallo zusammen! Ich bräuchte dringend hilfe von Experten, da ich ein totaler Anfänger bin. Ich habe eine vorhandene Excel Tabelle. Diese soll in...
  2. Aufrunden einer int in C

    Aufrunden einer int in C: Hi Leute, wie kann ich in C eine Zahl wie 53 auf die nächst größere Zahl welche durch 10 Teilbar ist aufrunden? Also von 53 auf 60 oder von 44...
  3. Visual C++ Problem

    Visual C++ Problem: Hallo Zusammen, habe neuerdings ein problem mit visual C++ wie es scheint. bei einigen Spielen startet er gar nicht mehr erst "Es wurde ein...
  4. Fernseher für Games o h n e S p i e g e l l a c k

    Fernseher für Games o h n e S p i e g e l l a c k: Fernseher für Games Hallo. Hatte ja vor ner Weile schon mal nach nem 50-55" Fernseher ohne nervigen Spiegel-Hochglanz-Lack gefragt. Hatte vor...
  5. C# - VS2008 - Code wird übersprungen

    C# - VS2008 - Code wird übersprungen: Hallo zusammen, ich komm hier einfach nicht weiter. Ich habe ein ziemlich großes Projekt. Eigentlich funktioniert alles. Aber seid heute...