AnsiString schneiden die 2te
-
(was ich hier nicht erklaeren werde) bitte rfc lesen - das ist mir einfach zuviel.
Sorry, aber du hast das Problem, wenn du es nicht mal in Worte fassen kannst.... Auch nicht mal die rfc Nummer angegeben. Soll man jetzt alle durchsuchen??
Hier kriegst du deine Zahl, egal wieviel Text davor ist, Hauptsache die Zahl ist durch ein Space vom dem Text davor getrennt.
String test=":irc.de.euirc.net 001 slackbot :Welcome to the euIRC network user!@host...blabla "; TStringList *liste=new TStringList(); split(liste,test," "); String zahl=liste->Strings[1]; delete liste;was denn fuer Anweisungen?
Solltest du eigentlich schon in den ersten Minuten beim programmieren gelernt haben. Wenn das
AnsiString.SubString(22, 26)
nicht funktioniert, liegt es an einer falschen Anweisung. Der Computer macht kaum Fehler
-
http://www.irchelp.org/irchelp/rfc/rfc2812.txt
na soviele rfc's ueber das irc protocol gibts nicht.
und jetzt kurz in worte gefasst: mir ist scheiss egal wie es sonst geht (gibt mio. moeglichkeiten), ich habs in c geloest und es funktioniert einwandfrei.
sollte jemand wissen wieso das mit der klasse ansistring nicht funktioniert, bin fuer jeden tipp dankbar.http://olze.ath.cx/debug.JPG
hier ein screenshot, links stehen die local variables, wo man iEnd und iStart sehen kann. Das hint zeigt den Inhalt der Variablen.Sorry, aber du hast das Problem, wenn du es nicht mal in Worte fassen kannst.... Auch nicht mal die rfc Nummer angegeben. Soll man jetzt alle durchsuchen??
keiner zwingt dich mir zu helfen, also lass es doch wenn es dich aufregt?
Solltest du eigentlich schon in den ersten Minuten beim programmieren gelernt haben.
Na wenn du so ein god-like-programmer bist dann kannste mir ja genau sagen warum es _genau_ so nicht geht?
lg
oli
-
Reichlich unverschämter Ton für nen Bittsteller, meinst du nicht, Oli? Wo sollte denn da die Motivation liegen dir zu Helfen?
Ich erklärs dir mal:
DU als Fragesteller bist in einer Bringschuld. Es ist deine Aufgabe, die Leute mit Informationen zu versorgen.Ich könnte jetzt mal im gleichen Stil antworten wie du: Du benutzt SubString falsch. Was genau es ist, bitte Borland Hilfe konsultieren. Ist einfach zuviel.
Und bevor du jetzt nen dicken Hals kriegst, schlucks nochmal runter und denk drüber nach... ok?
-
Du benutzt SubString falsch.
Das ist dir schon mehrfach hier erklärt worden
ich habs in c geloest und es funktioniert
Wo hast du da C benutzt?? Im Screenshot nix zu sehen.
Na wenn du so ein god-like-programmer bist dann kannste mir ja genau sagen warum es _genau_ so nicht geht?
Ganz ehrlich-> könnt ich bestimmt, aber ich habe keine Lust so ein verwurschtelten Code durchzugehen, ohne zu wissen was bei dabei rauskommen soll. Des Weiteren ist die von mir gezeigt Lösung um etliches kürzer.
-
Hallo,
danke fuer die Antwort und sorry fuer den "unverschaemten Ton"; ich krieg sicher keinen dicken Hals.
"Ich könnte jetzt mal im gleichen Stil antworten wie du: Du benutzt SubString falsch. Was genau es ist, bitte Borland Hilfe konsultieren. Ist einfach zuviel."
Mehr wollte ich eigentlich auch nicht hoeren - haette ja sein koennen das jemand auf anhieb sieht wo das Problem ist.
-
Na is doch klar das im Screenshot nix zu sehen ist, will ja wissen warum es so mit AnsiString nicht geht.
Ganz ehrlich-> könnt ich bestimmt, aber ich habe keine Lust so ein verwurschtelten Code durchzugehen, ohne zu wissen was bei dabei rauskommen soll.
hab ich jetzt wohl schon oft genug erklaert... weiss nicht wie ich es noch erklaeren soll damit du mich verstehst.
-
Ganz langsam:
Das ist der String
String test=":irc.de.euirc.net 001 slackbot :Welcome to the euIRC network user!@host...blabla ";
Was willst du daraus haben?
-
ok also,
stPrefix.tCompleteString <- hier soll :irc.de.euirc.net rein
stCommand.tCompleteString <- hier soll 001 reindas wars auch schon

lg
Oli
-
dan öffne mal die BCB-Hilfe
lies mal unter AnsiString nach, was diese Klasse alles kann.
spezielle aufmerksamkeit kannst du auf AnsiString::Pos() und AnsiString::SubString() werfensorry, aber mit solchen sachen muss man lernen klarzukommen..
wenn du etwas spezielles aus der hilfe nicht verstehst, frag konkret danachmfg
BigNeal
-
int i = 1; int x = 1; String Str; while (i < Edit1->Text.Length()) { Str = Edit1->Text.SubString(i,1); if (Str == " ") { ListBox1->Items->Add(Edit1->Text.SubString(x,i-x)); x = i + 1; } i = i + 1; } ListBox1->Items->Add(Edit1->Text.SubString(x,i-x+1));sowas?
-
Kann mich nur wiederholen:
String test=":irc.de.euirc.net 001 slackbot :Welcome to the euIRC network user!@host...blabla "; TStringList *liste=new TStringList(); split(liste,test," "); stPrefix.tCompleteString=liste->Strings[0]; stCommand.tCompleteString=liste->Strings[1]; delete liste;
-
Oh man... sry, hab in der Hilfe nicht nachgeschaut, dachte man muss SubString(startpos, endpos) angeben, dabei muss man SubString(startpos, anz_chars) angeben

danke, jetzt klappts.
LG
Oli
-
Edit: hupps, einige posts dazugekommen seit ich auf antworten geklickt hab...
ich sags nochmal: SubString(x,y) liefert nicht die zeichen von zeichen nr x bis zeichen nr y, sondern ab zeichen nr x die nächsten y zeichen...
zB
AnsiString test = "123456789"; AnsiString a = test.SubString(1,3); AnsiString b = test.SubString(3,4); AnsiString c = test.SubString(3,1);ergibt
a = "123", b = "3456" und c = "3"also wenn du die zeichen von zeichen nr x bis (einschließlich) zeichen nr y haben willst, machste
strTest.SubString(x,y-x+1);und wenn du das y-te zeichen nicht mehr mit drin haben willst:
strTest.SubString(x,y-x);wenn du mal meine letzte antwort GELESEN hättest anstatt zu bemängeln, dass sie das ergebnis im falschen string speichert, wüsstest du das inzwischen und hättest das Problem nicht mehr
WENN
Oli21 schrieb:
AnsiString.SubString(22, 26)
dir 4 zeichen gibt, dann liegt das daran, dass der string 25 zeichen lang ist und der daher ZUFÄLLIG an der richtigen stelle aufhört.
-
ja stimmt, muss deinen Beitrag ueberflogen haben... hab dein posting grad durchgelesen und da steht was ich endlich rausgefunden hab - werd das naechste mal genauer lesen