![]() |
String erkennen und aufteilen!
Hallo,
Ich habe ien kleine aber wichtiges Problem. Ich möchte eine Abfrage machen in der folgendes abgefragt wird: Wenn der string mit \\ anfängt soll er in memo2 geschirben werden, ansonsten in memo1. Wie kann cih das anstellen? Danke für eure Hilfe PS:. Wie kann cih den String unterteilen sprich wenn der string \\192.168.0.0 heisst ihn in 4 variablen auteilen also die erste 192....... usw. Lg La.Reunion |
Re: String erkennen und aufteilen!
|
Re: String erkennen und aufteilen!
DANKE für die schnelle Antowot!
...was ist mit stringvar gemeint? bzwwas muss ich damit machen? Lg La.Reunion |
Re: String erkennen und aufteilen!
Zitat:
![]() |
Re: String erkennen und aufteilen!
Zitat:
Also
Delphi-Quellcode:
Var S: String;
S := '\\192.168.0.0';
Delphi-Quellcode:
If Pos('\\', S) = 1 Then
Memo1.Lines.Add(S) Else Memo2.Lines.Add(S); |
Re: String erkennen und aufteilen!
mhh das habe ich gemacht mein string ist leider nur danach leer :-(
bzw in memo2 wird immer nur eine leere zeile hinzugefügt Ist für einen chat das die IP mitgesendet wird Server:
Delphi-Quellcode:
Client:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket); var I: integer; begin Text:= Socket.ReceiveText; if Pos('\\',Text) = 1 then Memo2.Lines.add(Socket.ReceiveText) else Memo1.Lines.Add(Timetostr(now)+': '+Text); For i := 0 to ServerSocket1.Socket.ActiveConnections - 1 do begin with ServerSocket1.Socket.Connections [I] do if (connected) then SendText(Text); end; end;
Delphi-Quellcode:
Var
IP : string; begin Label3.Caption := IP; if (ClientSocket1.Active=true) then ClientSocket1.socket.SendText('\\'+IP); end; |
Re: String erkennen und aufteilen!
AH habs
bei dme code war ein fehler!!! Bei if Pos('\\',Text) = 1 then Memo2.Lines.add(Socket.ReceiveText) else ...muss einfach nur TEXT sein! Danke für eure antworten! Lg La.Reunion PS:. wie kann cih amchen das die zeile beim ausloggen wieder gelöscht wird? |
Re: String erkennen und aufteilen!
Erstens: dein QuellCode ist echt besh*** formatiert ... kaum zu entziffern.
Zweitens: das "=true" gewöhn dir ganz schnell ab, es kann und wird abundzu zu Problemen führen denn TRUE ist nicht gleich TRUE Teste es selber mal
Delphi-Quellcode:
Server:
Var B: Boolean;
Begin B := True; If B = False Then ... // wird nicht ausgelöst If B = True Then ... // wird ausgelöst (OK, hier funktioniert es mal) If not B Then ... // wird nicht ausgelöst If B Then ... // wird ausgelöst B := Boolean(2); // ist im Grunde auch True, da TRUE <> 0 If B = False Then ... // wird nicht ausgelöst If B = True Then ... // wird auch nicht ausgelöst !!! If not B Then ... // wird nicht ausgelöst If B Then ... // wird ausgelöst B := Boolean(0); // oder B := False; If B = False Then ... // wird ausgelöst If B = True Then ... // wird nicht ausgelöst If not B Then ... // wird ausgelöst If B Then ... // wird nicht ausgelöst End;
Delphi-Quellcode:
Client:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var Text: String; i: integer; begin Text := Socket.ReceiveText; if Pos('\\', Text) = 1 then Memo2.Lines.Add(Text) else Memo1.Lines.Add(TimeToStr(now) + ': ' + Text); For i := 0 to ServerSocket1.Socket.ActiveConnections - 1 do with ServerSocket1.Socket.Connections[i] do if connected then SendText(Text); end;
Delphi-Quellcode:
[add]
Var
IP: string; begin Label3.Caption := IP; if ClientSocket1.Active then ClientSocket1.socket.SendText('\\' + IP); end; wo war der Rote Kaste ... Daaaannniiiieeellll? |
Re: String erkennen und aufteilen!
Okay mach ich danke!
|
Re: String erkennen und aufteilen!
Irgendwie hab cih gradn hänger was is heiran falsch?
Es wird nur ncihtsmehr zum memo1 geadded.
Delphi-Quellcode:
Woran liegt das?
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket); var Textrec : string; begin Textrec:= Socket.ReceiveText; Form1.Show; if not pos('192', Textrec) = 1 then Memo1.Lines.Add(Textrec); end; Lg La.Reunion |
Re: String erkennen und aufteilen!
Es wird nun was hinzugefügt, sofern "192" nicht am Anfang von "Socket.ReceiveText; " steht. Was steht denn in "Socket.ReceiveText; "?
|
Re: String erkennen und aufteilen!
entweder eine nachricht(handelt sich ja um einen chat) oder halt die IP.
Wenn es die Ip ist soll es ja logischerweise nicht in memo1 angezeigt werden da ich diese nur zum server schicken will(um zu sehen wer eingeloggt ist). .... |
Re: String erkennen und aufteilen!
Versuche es mal so:
Delphi-Quellcode:
oder so:
if not (Pos('192', Textrec) = 1) then
Memo1.Lines.Add(Textrec);
Delphi-Quellcode:
Oder du schreibst die eine Funktion, die überprüft, ob der Text eine gültige IP ist und handelst entsprechend. Doch irgendwie stimmt dein Konzept imho nicht, denn normalerweise wird eine IP nicht über die Nachricht übermittelt sondern separat im Hintergrund, das erspart dir so schlampige Lösungen.
if Pos('192', Textrec) <> 1 then
Memo1.Lines.Add(Textrec); Denn wenn dir einer die Nachricht "1920 ist mein Großvater geboren" schickt, kommt das auch nie an, da das mit 192 beginnt. |
Re: String erkennen und aufteilen!
ja hast recht aber so gut kenne ich mich leider nciht aus um zu prüfen ob das eine gültige IP ist vlt kannst du mir dabei ja helfen bz erklären wie ich das angehen soll!
Zitat:
Danke für die Hilfe Lg La.reunion |
Re: String erkennen und aufteilen!
Auf Anhieb habe ich
![]() Nun gahe ich aber ins Bett, muss morgen früh raus, bye. ;) Edit: ![]() |
Re: String erkennen und aufteilen!
DANKE schlaf gut!
...ich ahb morgen keine Schule juhu :-D *freu* Lg La.Reunion |
Re: String erkennen und aufteilen!
Ich hoffe, du hast mein "Edit" gesehen, diese Funktion ist besser, als die lange aus dem Thread, denke ich.
OT: Zitat:
|
Re: String erkennen und aufteilen!
..Alles gute noch auch wenn cih jetzt schon zuspät bin :-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz