AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Substring Problem

Ein Thema von PhilmacFLy · begonnen am 20. Aug 2009 · letzter Beitrag vom 22. Aug 2009
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#21

Re: Substring Problem

  Alt 21. Aug 2009, 15:38
also der : is kein moderator level mehr
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#22

Re: Substring Problem

  Alt 21. Aug 2009, 16:10
Wobei ich frage mich gerade, ob ein Doppelpunkt im Channelnamen erlaubt ist?

Also neue Version! Ergebnis müsste "Testnick ~PhilmacFLy" sein:
Delphi-Quellcode:
NickOffset := PosEx(':', s, ChannelOffset) + 1;
LineEnd := // s.u.
Nicks := Copy(s, NickOffset, LineEnd - NickOffset
Sollte ein Doppelpunkt, aber kein Leerzeichen erlaubt sein, dann kann man meine alte Version verwenden, muss dann aber sttt +1 +2 addieren. Auch könnte man zusätzlich den Suchstring (Z.Zt. noch ' ') in ' :' ändern.

Achso LineEnd wird falsch berechnet. Und zwar sollte das eigentlich unabhängig voneinander arbeiten. Also sofern du #13 oder #10 findest. Aber wenn er es nicht findet, kommt ja 0 raus, und würde damit als "LineEnd" gewertet werden.

Deshalb die verbesserte Version:
Delphi-Quellcode:
LineEnd13 := Pos(#13, s);
LineEnd10 := Pos(#10, s);
if ((LineEnd13 > LineEnd10) and (LineEnd10 > 0)) or (LineEnd13 = 0) then
  LineEnd := LineEnd10
else
  LineEnd := LineEnd13
Also, wenn kein #13er Zeichen vorkommt, oder es nach dem #10er Zeichen steht, welches Vorkommt, dann nimmt er das #10er Zeichen ansonsten das #13er

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#23

Re: Substring Problem

  Alt 21. Aug 2009, 16:25
edit: Phils ist manchmal seeeehr dumm
edit2: Ich bekomm wieder nen leeren string
Delphi-Quellcode:
procedure Tform2.list;
var
i, LineEnd13, LineEnd10, LineEnd, Nickoffset, Channeloffset: Integer;
str: String;
begin
ChannelOffset := Pos('#', memo2.Lines.Text);
LineEnd13 := Pos(#13, Memo2.Lines.Text);
LineEnd10 := Pos(#10, Memo2.Lines.Text);
if ((LineEnd13 > LineEnd10) and (LineEnd10 > 0)) or (LineEnd13 = 0) then
  LineEnd := LineEnd10
else
  LineEnd := LineEnd13;
NickOffset := PosEx(':', Memo2.Lines.Text, ChannelOffset) + 1;
str := Copy(Memo2.Lines.Text, NickOffset, LineEnd - NickOffset);

showMessage(str);
end;
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#24

Re: Substring Problem

  Alt 21. Aug 2009, 16:46
Steht in dem Memo genau das aus dem ersten Post? Könntest du mal durchdebuggen und mir mal sagen:
  • Was in Memo.Lines.Text steht (s. erste Frage)
  • Was in ChannelOffset steht
  • Was in LineEnd steht
  • Wenn in LineEnd 0 steht, ob in LineEnd13 und LineEnd10 auch eine 0 steht
  • Was in NickOffset steht

Danke

Achso der Code ist ungetestet, aber ich wüsste nicht, woran es gerade scheitert.

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#25

Re: Substring Problem

  Alt 21. Aug 2009, 17:00
Zu 1:

USER Testnick 0 * :Testnick
PING :3DDC5E1
PONG :3DDC5E1
JOIN #Königlich-Preußisches-Inf.Reg 18tes
001 Testnick :Welcome to the GIGA-Chat IRC Network Testnick!Testnick@p5B0944C2.dip.t-dialin.net
002 Testnick :Your host is chat.giga.de, running version Unreal3.2.8.1
003 Testnick :This server was created Sun Jul 12 2009 at 15:10:17 CEST
004 Testnick chat.giga.de Unreal3.2.8.1 iowghraAsORTVSxNCWqBzvdHtGp lvhopsmntikrRcaqOALQbSeIKVfMCuzNTGj
005 Testnick CMDS=KNOCK,MAP,DCCALLOW,USERIP UHNAMES NAMESX SAFELIST HCN MAXCHANNELS=20 CHANLIMIT=#:20 MAXLIST=b:60,e:60,I:60 NICKLEN=30 CHANNELLEN=32 TOPICLEN=307 KICKLEN=307 AWAYLEN=307 :are supported by this server
005 Testnick MAXTARGETS=20 WALLCHOPS WATCH=128 WATCHOPTS=A SILENCE=15 MODES=12 CHANTYPES=# PREFIX=(qaohv)~&@%+ CHANMODES=beI,kfL,lj,psmntirRcOAQKVCuzNSMTG NETWORK=GIGA-Chat CASEMAPPING=ascii EXTBAN=~,cqnr ELIST=MNUCT :are supported by this server
005 Testnick STATUSMSG=~&@%+ EXCEPTS INVEX :are supported by this server
251 Testnick :There are 15 users and 41 invisible on 2 servers
252 Testnick 11 perator(s) online
254 Testnick 67 :channels formed
255 Testnick :I have 40 clients and 0 servers
265 Testnick :Current Local Users: 40 Max: 56
266 Testnick :Current Global Users: 56 Max: 334
375 Testnick :- chat.giga.de Message of the Day -
372 Testnick :- 12/7/2009 15:12
372 Testnick :- ____ ___ ____ _ ____ _ _
372 Testnick :- / ___|_ _/ ___| / \ / ___| |__ __ _| |_
372 Testnick :- | | _ | | | _ / _ \ _____| | | '_ \ / _` | __|
372 Testnick :- | |_| || | |_| |/ ___ \_____| |___| | | | (_| | |_
372 Testnick :- \____|___\____/_/ \_\ \____|_| |_|\__,_|\__|
372 Testnick :-
372 Testnick :- Willkommen im GIGA Chat!
372 Testnick :-
372 Testnick :- ### Regeln ###
372 Testnick :- Durch den Verbindungsaufbau mit dem GIGA-Server werden folgende
372 Testnick :- Nutzungsbedigungen verbindlich akzeptiert:
372 Testnick :-
372 Testnick :- Generell verboten sind:
372 Testnick :- * Flood
372 Testnick :- * Spam
372 Testnick :- * Nickflood (Das absichtliche Benutzen extrem langer/nerviger Nicks)
372 Testnick :- * Nickwechselflood
372 Testnick :- * anstössige/abstoßende/rechtsextreme/beleidigende Nicks/Nickfake/”veräppelnde” N
372 Testnick :- icks
372 Testnick :- * Channelhoppen (andauernde Joins/Parts)
372 Testnick :- * Filesharing, Warez, FTP, XDCC, Hacking (Wird mit sofortigem Ban bestraft)
372 Testnick :- * Übertriebenes Fluchen
372 Testnick :- * Wiederholen
372 Testnick :- * Beleidigung, Belästigung, Provokationen, Drohungen, Diskriminierung
372 Testnick :- * Gewaltverherrlichung, Rassismus, Nationalismus
372 Testnick :- * Werbung jeder Art (Channels, IRC Netzwerke, Internetseiten, Diebesspiele…)
372 Testnick :- * Suche nach CS (Cybersex) und TS (Telefonsex)
372 Testnick :- * Pornografie
372 Testnick :- * Proxies
372 Testnick :-
372 Testnick :- * Kommerzielle Nutzung des GIGA-Servers oder dessen Inhalte
372 Testnick :- * Links zu Inhalten die gegen deutsche Gesetze verstoßen oder nicht für
372 Testnick :- Jugendliche geeignet sind.
372 Testnick :- * Das Sich-Ausgeben als GIGA-Mitarbeiter, deren Geschäftspartner oder
372 Testnick :- IRC-Operator
372 Testnick :- * Es besteht grundsaetzlich kein Recht auf die Nutzung des GIGA-Server
372 Testnick :- * GIGA ist es erlaubt den GIGA-Server jederzeit für Wartungsarbeiten und/oder
372 Testnick :- anderen notwendigens Maßnahmen abzuschalten, neu zu starten oder kurzzeitig zu
372 Testnick :- schließen
372 Testnick :- * GIGA und seine IRC-Operatoren ist es erlaubt einzelne User, Hosts und
372 Testnick :- IP-Adressen die Verbindung zum Server zu verbieten oder zu sperren.
372 Testnick :- * Der User kann sich bei der Nutzung des Dienstes Nicknamen oder Channels
372 Testnick :- (Raeume) registrieren. Eigentuemer der registrierten Nicknamen und Channels
372 Testnick :- bleibt GIGA. Der User hat lediglich ein Nutzungsrecht.
372 Testnick :- * GIGA ist es erlaubt Nicknamen und Channels zu verbieten oder zu sperren.
372 Testnick :- * GIGA ist es erlaubt diese Regeln jederzeit anzupassen oder zu ändern.
372 Testnick :-
372 Testnick :- Für die Inhalte und Themen sind die Benutzer selbst verantwortlich!
372 Testnick :- Die Gesetze der Bundesrepublik Deutschland sind zu beachten, z.b. Urheber-
372 Testnick :- rechtsgesetz, §184, §185 StGB, §53, §95, §95b UrhG, usw. Missachtung kann
372 Testnick :- strafrechtliche Verfolgung nach sich ziehen.
372 Testnick :- Computersabotage (§303b StGB; zB. ICMP/UDP Flood, DoS) wird angezeigt!
372 Testnick :-
372 Testnick :- ### Hinweise ###
372 Testnick :- Weder ein GIGA-Mitarbeiter noch ein IRC-Operator werden einen User JEMALS nach
372 Testnick :- Passwörtern fragen. Egal ob für den Chat-Server oder für seinen Account auf der
372 Testnick :- GIGA-Webseite.
372 Testnick :-
372 Testnick :- ### Offizielle Chatraeume ###
372 Testnick :- Offizielle GIGA Räume sind durch den Bot GIGA erkennbar.
372 Testnick :- Weitere Räume:
372 Testnick :- #hilfe (fuer Hilfe zu Problemen mit dem GIGA-Chat)
372 Testnick :-
372 Testnick :- ### IRC-Operatoren (Alphabetisch) ###
372 Testnick :- - brue
372 Testnick :- - coaxspi
372 Testnick :- - jonny
372 Testnick :-
372 Testnick :- ### Kontakt ###
372 Testnick :- Bei Fragen oder Problemen suche bitte zuerst den Raum #hilfe auf.
376 Testnick :End of /MOTD command.
MODE Testnick :+iwx
421 Testnick 200 :Unknown command
JOIN :#Königlich-Preußisches-Inf.Reg
332 Testnick #Königlich-Preußisches-Inf.Reg :
333 Testnick #Königlich-Preußisches-Inf.Reg ChanServ 1247405756
353 Testnick = #Königlich-Preußisches-Inf.Reg :Testnick ~PhilmacFLy
366 Testnick #Königlich-Preußisches-Inf.Reg :End of /NAMES list.
421 Testnick 200 :Unknown command
421 Testnick 200 :Unknown command
421 Testnick 200 :Unknown command
421 Testnick 200 :Unknown command
421 Testnick 200 :Unknown command
zu 2:
80
zu 3
14
zu 4
s.o.
zu 5
132
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#26

Re: Substring Problem

  Alt 21. Aug 2009, 17:29
Achso! Ich dachte da steht nur das drin zu den Nicks.

Vorher müsstest du also die Zeile mit "353" am Anfang suchen und dann den obigen Code ausführen:
Delphi-Quellcode:
for i := 0 to Memo.Lines.Count - 1 do
  if Copy(Memo.Lines[i]) = '353then
    GenerateNicks(Memo.Lines[i]);
Und GenerateNicks führt dann "meinen" Code aus, wobei der Übergabeparameter dann durchsucht wird (also die aktuelle Zeile). Außerdem kannst du dir dann das mit LineEnd sparen, da du ja nur eine Zeile hast. Dann ist LineEnd = Length(Memo.Lines[i])

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#27

Re: Substring Problem

  Alt 21. Aug 2009, 17:35
ließ den Text in eine StringList und such die Zeile mit 353 am Anfang
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#28

Re: Substring Problem

  Alt 21. Aug 2009, 17:36
Zitat von himitsu:
ließ den Text in eine StringList und such die Zeile mit 353 am Anfang
Joar siehe #26

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#29

Re: Substring Problem

  Alt 21. Aug 2009, 17:59
Zitat:
if Copy(Memo.Lines[i]) = '353then
Das wird wohl nicht funktionieren . Man könnte aber auch mit AnsiStartsText aus der Unit StrUtils nachschauen, das sollte einfacher sein.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#30

Re: Substring Problem

  Alt 21. Aug 2009, 18:31
Zitat von DeddyH:
Zitat:
if Copy(Memo.Lines[i]) = '353then
Das wird wohl nicht funktionieren
Es meckern doch alle immer rum, dass immer nur Code gepostet wird Jetzt muss mal nachgedacht werden und ist immer noch falsch

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz