Brauche Hlife bei Zeilenumbrüchen Soderzeichen und Komma abfrage ???



  • Hallo hat einer ne idee wonach ich suchen soll ich möchte von Memo1 ins stringrid schreiben bzw sortieren dabei sind mir 3 sätze gegeben

    $GPGGA,131746.217,0000.0000,N,00000.0000,E,0,00,0.0,0.0,M,,,,0000*0C
    $GPRMC,131746.217,V,0000.0000,N,00000.0000,E,,,201005,,*10
    $GPVTG,,T,,M,,N,,K*4E
    

    jetzt wollte ich erst mal in if abfragen was es für ein satz ist

    if (zeiger = $GPGGA)
    {
    }
    

    hab auch schon gelesen das es irgenwie nach buchstaben vergleichen geht habs aber noch nicht ganz begriffen kann mir einer weiterhelfen ?



  • Ps: pro sek spuckt das Programm 3 weitere sätze aus



  • Hallo

    schau dir die AnsiString-Methoden an. Auch in der BCB-Hilfe ist dazu viel zu finden.

    bis bald
    akari



  • So hab mir die Metoden angeschaut was mache ich denn jetzt zuerst muß ich ja unterscheiden mit AnsiPos aber der zeiger bleibt dann immer beim ersten Ansiwas gleich ist stehen und wenn es einen Fehler gibt dann kriege ich nur müll zurück?

    ich will ja zuerst unterscheiden und danach richtig sortieren
    das heißt:

    $GPGGA,131746.217,0000.0000,N,00000.0000,E,0,00,0.0,0.0,M,,,,0000*0C
    
    $GPRMC,131746.217,V,0000.0000,N,00000.0000,E,,,201005,,*10
    
    $GPVTG,,T,,M,,N,,K*4E
    

    aber wenn der satz nicht ok ar wie z.b:

    $GPGGA,131746.217,$GPGGA,131746.217,0000.0000,N,00000.0000,E,0,00,0.0,0.0,M,,,,0000*0C
    

    dann Arbeitet der auch nicht mehr richtig ???

    Danke für die Hilfe !!! 👍 👍



  • Hallo

    dann Arbeitet der auch nicht mehr richtig ???

    Und jetzt sollen wir ohne Quellcodeausszug und ordentliche Fehlerbeschreibung mitraten, was falsch ist?

    bis bald
    akari



  • Ne das könntest du ja nur wenn ich auch ein Proggi geschrieben hätte 😉

    Ich muß das ganze erst einmal verstehen um es zu schreiben 🙄

    Also erst mal ein Bsp ie ich mir das vorgestellt habe

    [cpp][cpp]
    $GPGGA,131746.217,0000.0000,N,00000.0000,E,0,00,0.0,0.0,M,,,,0000*0C
    
    int i,position;
    Ansistring wort1,wort2,wort3,Satz;
    
    wort1 = "GPGGA";
    wort2 = "GPRMC";
    wort3 = "GPVTG";
    position= Ansipos(wort1,Satz);// jetzt kriege ich pos zurück
    

    [/cpp]
    position= Ansipos(wort2,Satz);

    position= Ansipos(wort3,Satz);

    aber wie mache ich jetzt weiter ?[/cpp]



  • Hallo

    Du must jetzt die Rückgabewerte von AnsiPos überprüfen. siehe BCB-Hilfe zu AnsiString::AnsiPos

    Sind die drei Wörter die einzigsten nach denen du dann final suchen willst? Ansonsten ist deine Vorgehensweise, jedes Wort fest einzeln zu überprüfen, eher schlecht. Da bieten sich schleifen und Arrays an.

    bis bald
    akari



  • Hast du dir von TStrinGrid schon mal die Eigenschaft CommText angsehen? In der FAQ gibts dazu auch was (Sortieren).



  • Ja da kommen warscheinlich noch mehr dabei das sind die drei Sätze mit den ich anfangen will

    Die Ansipos bekomme ich ja jetzt wieder aber wie kann ich das ganze kopieren ?

    vieleicht so?

    SringGrid1->Cells[i][0] = position[5];
    

    auserdem wie lasse ich i einen weiterspringen ?

    If (Ansistr::Substr = 1)
    {
    i++
    }
    

    oder wie ?? 😕

    Außerdem hab ich ja noch das Problem das der Satz im Buffer woraus ich ihn lese mehrere male stehen könnte 😕



  • Hab gerade gesuch nur nichts gefunden zu CommText kannst du mir einen Link geben ? 😞



  • Hab gerade was gefunden nur Peil ich nicht so ganz 😕 😕

    AnsiString CommaText = {read=GetCommaText

    das heißt?

    gut er sucht nach jedem Komma aber wie setze ich es ein?

    SringGrid1->Cells[i][0] = CommaText(Edit1->Text);
    

    Wie zähle ich i rauf?



  • vielleicht solltest du dir mal ein buch zulegen oder ein tutorial durcharbeiten. du hast ja null ahnung von programmierung. ausserdem enthält die hilfe viele beispiele zu grundlegenden funktionen. in deinem installationsordner gibt es ausserdem ein verzeichnis examples mit beispielprogrammen. die solltest du dir mal anschauen!

    hier mal einige bücher die von interesse sein könnten:

    C++ mit dem Borland C++Builder | ISBN: 3540629947 Borland C++ Builder 5 Grundlagen | ISBN: 3980673847 C++ Builder 3.0 | ISBN: 3827313414 Go To C++ | ISBN: 3827317134 Borland C++ Builder | ISBN: 3827252709 Borland C++ Builder 3 in 21 Tagen | ISBN: 3827220270



  • Dafür ist doch auch ein Form da um sich Ahnung zu verschaffen 😉
    ich hab auch was gefunden aber bekomme jetzt das nicht so hin wie ich es haben will

    TStringList * list = new TStringList;
    list->CommaText = Memo1->Text;
    if (list->Text = "$GPRMC")// Da klappt es nicht [C++ Fehler] Unit1.cpp(34): E2492 Zuweisung von Eigenschaften nur mit einfachen Anweisungen wie \\\042prop = value;\\\042
    {
    SG1->Cells[0][j]= (list->Text);
    j++;
    }
    
    Memo2->Lines->Add(list->Text);//da klappt es
    


  • Das Beispiel in der FAQ hast du dir nicht angesehn oder?



  • com-cat schrieb:

    Dafür ist doch auch ein Form da um sich Ahnung zu verschaffen

    das forum dient dazu dir bei schwierigen problemen/fragen eine anlaufstelle zu bieten und nicht dir das 1x1 des programmierens bei zu bringen.

    if (list->Text = "$GPRMC")// Da klappt es nicht [C++ Fehler] Unit1.cpp(34): E2492 Zuweisung von Eigenschaften nur mit einfachen Anweisungen wie \\\042prop = value;\\\042
    

    kleiner tipp: lies dir mal die fehlermeldung durch!



  • hatte ein anderes Bsp gefunden wie kann ich denn den index auslesen von der liste?? 😕 also wenn ich den zeiger liste ->index[i] oder liste [i] ?? ka 😕



  • Hab es auch so gefunden nach superlangen suche

    TStringList * list = new TStringList;
    
    list->CommaText = Memo1->Text;
    
    int i=1;
    
    for(int j=0;j<list->Count;j++)
    {
    if (list->Strings[j] == "$GPGGA")
            {
            SG1->RowCount= i;
            SG1->Cells[0][i]= list->Strings[j]; // Satzart
            SG1->Cells[1][i]= list->Strings[j+1];// Zeit
    

    Danke für die Hilfe 👎


Anmelden zum Antworten