Announcement

Collapse
No announcement yet.

string

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • string

    wie kann ich in einen string (c:\windows\tmp)
    mehrere zeichen einfügen ? so das das ergebnis im string etwa so aussieht:
    (c:\\windows\\tmp\\)

  • #2
    http://home.snafu.de/christian.marquardt/quickies.1/1_index.html

    Benutze die REPLACE Funktion

    Christia
    Christian

    Comment


    • #3
      kann mir das mal jemand so aufbereiten das es bei mir funktioniert?<br>void replace(String &text,String such, String ersetz, bool all=true)<br>
      {<br>
      int pos;<br>
      pos=text.Pos(such);<br>
      while(pos>0)<br>
      {<br>
      text.Delete(text.Pos(such),such.Length());<br>
      text.Insert(ersetz,pos);<br>
      if(all==false)<br>
      break;<br>
      pos=text.Pos(such);<br>
      }<br><br>
      }<br&gt

      Comment


      • #4
        Was geht denn nicht??

        replace(text,"\","\\")

        sollte doch gehen

        Christia
        Christian

        Comment


        • #5
          wenn ich den code ausführe hängt sich mein programm auf<br>
          <br>

          void replace(String &text,String such, String ersetz, bool all=true)
          {<br>

          int pos;<br>

          pos=text.Pos(such);<br>

          while(pos>0)<br>

          {<br>

          text.Delete(text.Pos(such),such.Length());<br>

          text.Insert(ersetz,pos);<br>

          if(all==false)<br>

          break;<br>

          pos=text.Pos(such);<br>

          }
          <br>

          }
          void __fastcall TForm1::Button1Click(TObject *Sender)<br>

          {
          <br>

          replace(Edit1->Text,"/","//");<br>

          }<br&gt

          Comment


          • #6
            Ich brüte mal nac
            Christian

            Comment


            • #7
              Zu Ende gebrütet. Das Programm hat sich nicht aufgehangen, sondern die Routine hat sich sich beendet, da nach einem Zeichen gesucht wurde und diese durch ein gleiches ersetzt wurde (wenn auch durch mehrere). Es gab also eine Endlosschleife. Fehler von mir, habe nicht bedacht, dass man doch bedarf für sowas hat.
              Die folgende Routine sollte dieses Mank beheben.

              Denke daran, dass die \ Sonderzeichen sind suche also wie folgt:
              <pre>
              String muster=Edit1->Text;
              replace(muster,"\\","\\\\");
              Edit1->Text=muster;
              <pre>
              Hat bei mir funktioniert. Wäre über eine Rückantwort, ob die Rountine jetzt einwandfrei läuft dankbar. ([email protected])
              <pre>
              void replace(String &text,String such, String ersetz, bool all=true)
              {
              int pos,x,l;
              String teil;
              l=text.Length();
              for(x=1;x<l+1;x++)
              {
              teil=text.SubString(x,such.Length());
              if(teil==such)
              {
              text.Delete(x,such.Length());
              text.Insert(ersetz,x);
              x+=ersetz.Length()-1;
              l=text.Length();
              }
              if(all==false)
              break;
              }
              }
              <pre&gt
              Christian

              Comment

              Working...
              X