Bestimmte Zeichen am Ende auslesen?

Jetzt mitmachen!

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

  • Hi,ich habe ein Problem und zwar:
    Ich habe eine Quelldatei mit folgender Struktur:
    131,von Schneider,Jan Roland,26.3.1980 00:00:00,BFIA03


    Daraus soll ich eine Zieldatei generieren die wie folgt auszusehen hat:
    131,vonschneiderjan,me3po2,bfia03,26.3.1980,cr/lf


    Jetzt habe ich ein Problem:
    ich bekomme einfach nicht die verdammten Nullen nach dem datum weg.


    und dann hab noch ein problem mit "BFIA03"..wie soll ich die letzten 6 zeichen auslesen und dann mitten in die zieldatei bringen...bitte helft mir,ich muss bis donnerstag fertig sein..... :-[


    thx 4 help

  • ja das steht hinter jedem datum.soll einfach nur weg bzw. nich mehr in der ziel datei auftauchen...
    also mein größtes problem is halt dieses BFIA03 und wie ich diese ganze prozedur(in kleinbuchstaben umwandeln,zufallspasswort nach der nachnamen-vorname kombi usw.) geschickt in eine do-while unterbringen soll, weil das ja in der quelldatei mehrere zeilen sind..


    bitte helft mir...

  • also wenn du die zeile in einen string (char*) geholt hast würde ich so vorgehen:
    1. Leerzeichen erstmal durch _ ersetzen (für die Namen)

    Code
    char *ptr;
    while(ptr=strchr(szLine,' ')*ptr='_');


    2. Kommas durch Leerzeichenersetzen (s. oben)


    3. mit sscanf die Teile (Nummer, Nachname, Vorname, Datum, Uhrzeit, Kennung) in separate Variablen oder strings holen

    Code
    sscanf(szLine,"%d %s %s %s %s %s",&nNummer,szNachname,szVorname,szDatum,szUhrzeit,szKennung);

    (die Nummer kann man auch in einen string holen)


    4. aus Vor- und Nachnamestring einen neuen basteln (char *strlwr( char *string ) , zum konvertieren in lowercase, Kopeirfunktion suchen oder basteln, die die _ weglässt)


    5. Kennung ebenfalls in lowercase konvertieren (strlwr(...))


    6. alles wieder in gewünschter reihenfolge in die Zieldatei oder erst mal in nen String schreiben

    Code
    sprintf(szWriteLine,"%d,%s,%s,%s,%s\r\n",nNummer,szNameNeu,szIrgendwas,szKennung,szDatum)


    ich nehme mal an du meintest Carriage Return und Line Feed am ende von

    Zitat

    131,vonschneiderjan,me3po2,bfia03,26.3.1980,cr/lf


    mit MFC Klassen gibts auch ne Lösung, frag halt nochmal nach wenn was unklar ist


    Gruß
    Jamo

  • achso, hab ich vergessen, wegen dem Zufallswort szIrgendwas
    könnte so aussehen

    Code
    char szIrgendwas[LAENGE+1];
    for(int i=0;i<LAENGE;i++)
    {
       szIrgendwas[i]=48+rand()%77;//da sind auch Zeichen wie [/< usw. dabei, siehe ascii tabelle zeichen 48 bis 125
    }
    szIrgendwas[LAENGE]='\0';


    für rand() muss noch irgendwas initialisert werden, hatten wir mal in nem älteren thread hier, oder guck in der Hilfe des Kompilers nach


    Gruß
    Jamo

  • nö, aber das ist oft das Problem, dass die grundlegensten infos fehlen


    sry, da kann ich dir nun leider nicht so genau weiter helfen
    aber vom Weg her sollte es da in ähnlicher Weise lösbar sein, wenns keine sscanf-ähnliche Möglichkeit gibt, dann musst du die strings zwischen den Kommas ausschneiden, bei CString in den MFC gibts da die Methode Mid, da kann man Startindex und Anzahl der Zeichen angeben



    also ein string array für 6 Strings anlegen und dann mit ner schleife von Komma zu Komma und bis zum Ende hangeln (da gibts sicher ne Find Methode bei der man den Startwert angeben kann) und Nummer, Nachname, Vorname, Datum, Zeit und Kennung in die 6 Strings kopieren


    dann den neuen Name basteln, das Zufallswort (das könnte schwieriger werden) generieren, die Kennung zu lowercase (sollte ne Methode da sein) und das ganze in der richtigen Reihenfolge wieder zusammenschustern

  • ich weiß nich wie du das meinst, ich soll eine zeile in einen string packen..könntest du mir dafür mal die syntax sagen....


    danke schonmal für die hilfe...

  • shit ich meinte nur C....also die Programmiersprache ist C.
    wie bekomm ich das gelesene zeichen in einen string rein?

  • ja wie nun? :stock:


    also in C sollte das hier funzen


    das ist jetzt nur beispielhaft, aber so ungefähr könntes aussehen in C
    stdio.h wird glaub ich benötigt