Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2013, 00:42   #1
Jony18
 
Регистрация: 21.05.2009
Сообщений: 4
По умолчанию Клиент-Сервер

подскажите пожалуйста как сделать чтоб сервер возвращал слова только равные заданому N
Jony18 вне форума Ответить с цитированием
Старый 23.03.2013, 00:51   #2
RuVarez
Форумчанин
 
Аватар для RuVarez
 
Регистрация: 25.08.2010
Сообщений: 258
По умолчанию

Что вы имеете ввиду под N?
RuVarez вне форума Ответить с цитированием
Старый 23.03.2013, 00:53   #3
Jony18
 
Регистрация: 21.05.2009
Сообщений: 4
По умолчанию

N- это количество букв которые должны быть в слове
Jony18 вне форума Ответить с цитированием
Старый 23.03.2013, 01:24   #4
RuVarez
Форумчанин
 
Аватар для RuVarez
 
Регистрация: 25.08.2010
Сообщений: 258
По умолчанию

сервер уже написан?
RuVarez вне форума Ответить с цитированием
Старый 23.03.2013, 01:31   #5
Jony18
 
Регистрация: 21.05.2009
Сообщений: 4
По умолчанию

да вот
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, StdCtrls;

type
TForm1 = class(TForm)
Memo1: TMemo;
ServerSocket1: TServerSocket;
procedure FormCreate(Sender: TObject);
procedure ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientDisconnect(Sende r: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
ServerSocket1.Open;
end;

procedure TForm1.ServerSocket1ClientConnect(S ender: TObject;
Socket: TCustomWinSocket);
begin
memo1.Lines.Add('Êëèåíò ïîäêëþ÷èëñÿ.')
end;

procedure TForm1.ServerSocket1ClientDisconnec t(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1.Lines.Add('Êëèåíò îòêëþ÷èëñÿ.')
end;

procedure TForm1.ServerSocket1ClientError(Sen der: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
memo1.Lines.Add('Îøèáêà :'+inttostr(ErrorCode));
ErrorCode:=0;
end;

procedure TForm1.ServerSocket1ClientRead(Send er: TObject;
Socket: TCustomWinSocket);
var s,ks: string;
i,j,k: integer;
begin
s:=Socket.ReceiveText;
memo1.Lines.Add('Ïðèíÿòî >>>>> '+s);

if pos('N:',s)=1 then
begin
delete(s,1,2);
ks:=copy(s,1,pos('#',s)-1);
k:=strtoint(ks);
delete(s,1,pos('#',s));
memo1.Lines.Add(s);
end;

i:= 1; {íà÷èíàåì ñ ïåðâîãî ñèìâîëà â ñòðîêå}
j:= 0; {ñíà÷àëà äëèíà ñëîâà ðîâíà íóëþ}
while i<=length(s) do
begin
if (s[i] <> ' ') and (s[i] <> '.') and (s[i] <> ',')
and (s[i] <> '?') and (s[i] <> '!') and (s[i] <> '-')then
begin {åñëè î÷åðåäíîé ñèìâîë íå ïðîáåë}
inc(j);{óâåëè÷èâàåì äëèíó ñëîâà}
inc(i);{ïåðåõîäèì ê ñëåäóþùåé áóêâå}
end
else
begin
if j <> k then
begin {åñëè äëèííà ñëîâà <= ' ks '}
delete(s,i-j,j+1); {âûðåçàåì âìåñòå ñ ïðîáåëîì ïîñëå ñëîâî}
i:= i-j;
j:= 0; {îáíóëÿåì äëèíó ñëîâà}
end
else
begin
i:= i+1;
j:= 0;
end;
end;
end;
Socket.SendText(s);
end;
end.



но тут удаляет слова меньше или равно N Надо изменить
Jony18 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отправить видео захват(с веб-Кам.) Клиент->Сервер->Клиент RODNOC Мультимедиа в Delphi 17 03.10.2010 22:31
Клиент->Сервер->Клиент RODNOC Работа с сетью в Delphi 0 25.09.2010 11:49
сервер+клиент+клиент на телефон Razyiller Работа с сетью в Delphi 3 01.04.2010 20:10
Возможно-ли Клиент-серверное приложение типа Клиент(Pascal) а сервер(CGI)? Demol Работа с сетью в Delphi 1 21.04.2009 16:18