anoniem Geplaatst: 21 maart 2002 Delen Geplaatst: 21 maart 2002 Hoe kan ik een ipadres scheiden waarachter het poort nummer staat. Dus bijvoorbeeld. 192.168.1.17:4856 Dan wil ik in een edit box 192.168.1.17 en in de andere het poortnumer 4856 Als iemand me ff kan helpen _________________ "The agony in my destiny mirrors the solitude of my isolated fears." -The R!ddler [ Dit Bericht is bewerkt door: R1ddl3r@work op 2002-03-21 15:12 ] Quote Link naar reactie
anoniem Geplaatst: 21 maart 2002 Auteur Delen Geplaatst: 21 maart 2002 Zoals je in een ander topic kunt lezen wil ik overstappen van VB naar Delphi. Kan je nier direct zeggen hoe het in Delphi moet maar wel hoe ik het in vb zou aanpakken. Dat IP heeft niet altijd dezelfde lengte dus daar kun je weinig mee. Wat ik zou doen is de zooi in een string zetten en dan steeds het eerste getal/teken opvragen. Wanneer dit niet ":" is wordt hij achteraan in de txtIP geplakt. Is het wel ":" dan schakel je over naar txtPoort en zet daar de rest neer. Quote Link naar reactie
anoniem Geplaatst: 21 maart 2002 Auteur Delen Geplaatst: 21 maart 2002 Ja, thanx!!!! Die lengte zat me ook dwars dus..... :smile: proggie bijna af... jippie! Quote Link naar reactie
anoniem Geplaatst: 21 maart 2002 Auteur Delen Geplaatst: 21 maart 2002 Maar euhhh hoe krijg ik de eerste karakter van string te lezen. _________________ "The agony in my destiny mirrors the solitude of my isolated fears." -The R!ddler [ Dit Bericht is bewerkt door: R1ddl3r@work op 2002-03-21 16:13 ] Quote Link naar reactie
anoniem Geplaatst: 21 maart 2002 Auteur Delen Geplaatst: 21 maart 2002 een string in Delphi is te benaderen als een array ... het eerste karakter van string s is dan s[1] // -- Je krijgt dus een IP-adres + poort in de vorm "aaa.bbb.ccc.ddd:eee" als string aangeleverd ? Splitsen is dan simpel : [code:1:c85073758b] var idx : integer; invoer, ipadres, poort : string; begin // zoek de positie van het ':'-teken : idx := pos(':',aInvoer); if (idx > 0) then begin // het ip-adres is alles tot aan de ':' ipadres := copy(invoer,1,idx - 1); // de poort is alles na het teken ... // we nemen de string eerst over ... poort := invoer; // en verwijderen van het begin t/m het ':' van de string delete(poort,1,idx); end; end; [/code:1:c85073758b] Quote Link naar reactie
anoniem Geplaatst: 22 maart 2002 Auteur Delen Geplaatst: 22 maart 2002 Ben alweer een tijdje uit Delphi, maar er bestaat ergens een functie inStr of zoiets (ff zoeken in de help), waarmee je de positie van een bepaald karakter in de string kan vinden. Zoeken op ":", alles na die positie is het poortnummer, alles ervoor het ip adres... Greetz, Taz Quote Link naar reactie
anoniem Geplaatst: 26 maart 2002 Auteur Delen Geplaatst: 26 maart 2002 Wat netter is: [code:1:9f8938bdac] ip := copy(string,1,pos(':',string) -1); poort := copy(string,pos(':',string)+1,length(string)-(pos(':',string)+1)); [/code:1:9f8938bdac] natuurlijk wel even de fouten afvangen van lengte 0 en geen : aanwezig. [ Dit Bericht is bewerkt door: Niek Breur op 2002-03-26 12:54 ] Quote Link naar reactie
anoniem Geplaatst: 26 maart 2002 Auteur Delen Geplaatst: 26 maart 2002 Kan dat in vb ook zo makkelijk? (heb tijdelijk geen vb.. hd naar de $@#^%%) De enige manier die ik in vb ken is met for p = 1 to len(string) if pde karakter = ":" then next p om het ff heel kort te doen. mis wel de helft, maar de bedoeling is duidelijk. Quote Link naar reactie
anoniem Geplaatst: 26 maart 2002 Auteur Delen Geplaatst: 26 maart 2002 1. JaFo had al een geweldig voorbeeld, probeer die eens (gericht aan de mensen die met allerlei suggesties aankomen die al genoemd waren :smile:) 2. In VB is er een functie InStr(), combineer dat met Left() en Right() en je hebt hetzelfde principe... Quote Link naar reactie
anoniem Geplaatst: 26 maart 2002 Auteur Delen Geplaatst: 26 maart 2002 [quote:17199ceeec] Op 26-03-2002 14:21, schreef MarkVR: 2. In VB is er een functie InStr(), combineer dat met Left() en Right() en je hebt hetzelfde principe... [/quote:17199ceeec] pde karakter = Left(string,p) Dat wist ik. Maar uiteindelijk heb je meer code dan in Delphi. Quote Link naar reactie
anoniem Geplaatst: 26 maart 2002 Auteur Delen Geplaatst: 26 maart 2002 Code zou ongeveer gelijk moeten zijn. Wat ik net zie is dat je de code van Nick (die lekker compact lijkt) niet moet gebruiken. Ten eerst wordt 0 afvangen erg lastig zo, en ten tweede roept hij 3x Pos aan terwijl die pos gelijk blijft, zonde van de uitvoertijd, sla het gewoon tijdelijk op in een variabele.... In ieder geval, zoals JaFo laat zien kan je het in VB ook doen, iets andere functienamen alleen, dus ik weet niet wat jij verstaat onder 'lange code'... :smile: Quote Link naar reactie
anoniem Geplaatst: 26 maart 2002 Auteur Delen Geplaatst: 26 maart 2002 Ga ik z.s.m eens proberen. Eerst ff wachten op mijn nieuwe hd....zucht. Quote Link naar reactie
anoniem Geplaatst: 27 maart 2002 Auteur Delen Geplaatst: 27 maart 2002 [quote:ef28cd05aa] Op 26-03-2002 12:53, schreef Niek Breur: Wat netter is: [code:1:ef28cd05aa] ip := copy(string,1,pos(':',string) -1); poort := copy(string,pos(':',string)+1,length(string)-(pos(':',string)+1)); [/code:1:ef28cd05aa] natuurlijk wel even de fouten afvangen van lengte 0 en geen : aanwezig. [ Dit Bericht is bewerkt door: Niek Breur op 2002-03-26 12:54 ] [/quote:ef28cd05aa] Netter ? Da's een nachtmerrie om te onderhouden & debuggen! Wat denk je dat er gebeurt als je bij een van die 'pos()'-statements het verkeerde teken probeert te zoeken ? 'net programmeren' houd IMHO in ieder geval 1 ding in : een statement / regel zodat je met de debugger precies kunt zien wat er gebeurd! Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen