Wie entferne ich ein doppeltes Hochkomma in einen String?

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
JohnR
Beiträge: 42
Registriert: 3. Dezember 2011 13:23

Wie entferne ich ein doppeltes Hochkomma in einen String?

Beitrag von JohnR » 9. Dezember 2011 22:49

Hi

Ich bekomme von einer API einen String zurück der folgendermaßen aussieht

"wert1","wert2","wert3","wert4"

normal verwende ich replace ala

apisort2.replace(QString("\r\n"), QString(""));

aber das geht ja hier nicht wie mir scheint......,


kann ich den String zu ASCII konvertieren und dann "034" replacen oder ist der Ansatz falsch ?

Ein kleines Bsp. wäre hier wirklich nett :-)

Gruß John

franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: Wie entferne ich ein doppeltes Hochkomma in einen String

Beitrag von franzf » 10. Dezember 2011 07:38

JohnR hat geschrieben:normal verwende ich replace ala

apisort2.replace(QString("\r\n"), QString(""));

aber das geht ja hier nicht wie mir scheint......,
Dann sag uns bitte wie du es probierst und vor allem was schief geht. Ohne solchen elementaren Infos kann man nicht wirklich helfen.

sowas
Beiträge: 101
Registriert: 19. September 2006 16:02

Re: Wie entferne ich ein doppeltes Hochkomma in einen String

Beitrag von sowas » 16. Dezember 2011 17:40

folgender Code funktioniert bei Textzeilen wie:

"Müller, Birgit","Müller","Birgit",""

//aus b_ops/examples/src/kap08/addressbook - ISBN 3-937514-12-0

Code: Alles auswählen

QStringList splitCSVLine(const QString& line)
{
  int inItem = false;
  QStringList items;
  QString item;

  for (int pos = 0; pos < line.length(); pos++)
  {
    QChar c = line.at(pos);
    if ( c == '\"') {
      if (inItem) {
        items.append(item);
        item = "";
      }
      inItem = !inItem;
    }
    else 
      if (inItem)
         item += c;
  }
  return items;
}

Herzogswalder
Beiträge: 79
Registriert: 11. Oktober 2009 00:37
Wohnort: Dresden

Re: Wie entferne ich ein doppeltes Hochkomma in einen String

Beitrag von Herzogswalder » 16. Dezember 2011 21:03

So funkioniert es auch:

Code: Alles auswählen

QString result = source.replace("\"", "")
Gruß, Herzogswalder
Qt 4.8, OS X Mountain Lion

JohnR
Beiträge: 42
Registriert: 3. Dezember 2011 13:23

Re: Wie entferne ich ein doppeltes Hochkomma in einen String

Beitrag von JohnR » 17. Dezember 2011 12:42

Danke euch beiden vielmals für die Hilfe....

Hatte mir bei google und co. schon einen abgesucht und auch vieles selbst probiert aber leider wollte das alles nicht :cry:

Gruß John

@ franzf Sie sehen man kann, obwohl ich nicht verstehen kann was sie daran nicht verstanden haben (also meine ursprüngliche Frage).

Wie ich es ihnen schon mehrfach geschildert habe ist es nunmal so das ich KEIN PROFI in C++ wie auch in QT bin, auch habe ich nicht den Luxus das mir jemand Vorträge im Rahmen einer Schulung zu dem Thema hält. Ich darf mir das ganze selbst erarbeiten, was mir aber auch Spaß macht.

Ab und an kommt es aber vor das ich bei Sachverhalten nicht weiter komme, diese können durchaus einfach gestrickt sein...., ich habe schon mehrfach erlebt das ich als recht komplex eingestufte Dinge schnell nachvollziehen konnte und dafür mit vermeintlich einfachen Problemchen so meinen "Spass" hatte, siehe dieses Beispiel.


trotzdem Danke

franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: Wie entferne ich ein doppeltes Hochkomma in einen String

Beitrag von franzf » 17. Dezember 2011 13:27

JohnR hat geschrieben:@ franzf Sie sehen man kann, obwohl ich nicht verstehen kann was sie daran nicht verstanden haben (also meine ursprüngliche Frage).
Es war mir sehrwohl klar, dass der Kern der Frage war "wie bekomme ich " weg?"
Das Problem: Du postest ein Stück Code, das mit deinem eigentlichen Problem nur am Rande zu tun hat, den tatsächlichen Code postest du nicht mit der Begründung "geht ja nicht" und beschreibst einen komplizierten Lösungsansatz. Anstatt zu warten, hättest du jetzt deinen Code und den Fehler posten können. Bei diesem Problem ist es sicherlich nicht zwingend nötig, höflich wäre es aber trotzdem. Vor allem wenn du dir nicht sicher bist, ob dein Problem jetzt groß oder klein ist!
Der Kern des Problems ist nämlich, dass eine " in zwei "" escaped werden muss, denn QString(""") gibt dir nen Fehler...

Das Problem hätte sich auch mit der Doku lösen lassen. "replace" kennst du ja schon, wenn du dir nicht sicher bist, wie es in deinem Fall anzuwenden ist, hätte ein Blick genügt und dir wären die ganzen "QString::remove" ins Auge gestochen! Denn: Wenn du entfernen willst, solltest du auch wirklich entfernen und nicht "etwas" durch "nichts" ersetzen.

Antworten