Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> листинг дерикторий, уделенной тачки! 
V
    Опции темы
elestrago
Дата 11.2.2008, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 23.8.2007
Где: runet

Репутация: 1
Всего: 3



в общем есть проблема не как не могу передать нормально по сети список файлов определенной дериктории и отобразить это дело в клиентской части 

вот мой код 

серверная часть 
Код

if copy(prihod, 1,7) = 'listing' then
begin
  delete(prihod,1,7);
  chdir(prihod);
if findfirst('*.*', faanyfile,sr)=0 then
repeat
a:=sr.Name;
until findnext(sr)<>0;
Listbox1.Items.add(a);
serversocket1.Socket.Connections[0].SendText('listing'+a);


клиентская часть 

Код

   if copy(prihod, 1, 7)='listing' then
    begin
      delete(prihod, 1, 7);
      slistbox1.Items.add(prihod);


вот как все это выглядит в картинках серверная часть user posted image клиентская user posted image

как видите приходит всеголишь только 2 строчки listing + windows папка куда деваются остальные и почему в серверной части все нормально отображается

--------------------
PM MAIL ICQ   Вверх
mmvds
Дата 11.2.2008, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 22.12.2007

Репутация: 1
Всего: 6



Код

if copy(prihod, 1,7) = 'listing' then
begin
  delete(prihod,1,7);
  chdir(prihod);
if findfirst('*.*', faanyfile,sr)=0 then
repeat
a:=sr.Name;
serversocket1.Socket.Connections[0].SendText('listing'+a);
until findnext(sr)<>0;
Listbox1.Items.add(a);

если то что на скринах, правда, и в листбокс на сервере появляяется список процессов, то стоит заменить slistbox1.Items.add(prihod); на listbox1.Items.Text:=prihod;

Это сообщение отредактировал(а) mmvds - 11.2.2008, 16:04
PM MAIL ICQ   Вверх
THandle
Дата 11.2.2008, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: нет
Всего: 372



Цитата(elestrago @  11.2.2008,  14:10 Найти цитируемый пост)
if findfirst('*.*', faanyfile,sr)=0 then
repeat
a:=sr.Name;
until findnext(sr)<>0;
Listbox1.Items.add(a);

Как мне кажется, в листбокс должно добавляться только имя последнего файла. И соответственно посылатся тоже. попробуй вот так столи:
Код


if copy(prihod, 1,7) = 'listing' then
begin
  delete(prihod,1,7);
  chdir(prihod);
  if findfirst('*.*', faanyfile,sr)=0 then
    repeat
      a:=sr.Name;
      Listbox1.Items.add(a);
      serversocket1.Socket.Connections[0].SendText('listing'+a);
    until findnext(sr)<>0;



Пока писал уже опередили.

Это сообщение отредактировал(а) THandle - 11.2.2008, 15:58
PM   Вверх
elestrago
Дата 11.2.2008, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 23.8.2007
Где: runet

Репутация: 1
Всего: 3



ладно теперь с этим разобрался smile теперь другая проблема smile сейчас все это выглядит вот так 

user posted image  клиент user posted image
--------------------
PM MAIL ICQ   Вверх
Qu1nt
Дата 11.2.2008, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 13.1.2007

Репутация: 2
Всего: 50



Естественно, пакеты склеиваются. На форуме данная проблема обсуждалась и не раз. 

Это сообщение отредактировал(а) Qu1nt - 11.2.2008, 18:14
PM MAIL   Вверх
elestrago
Дата 11.2.2008, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 23.8.2007
Где: runet

Репутация: 1
Всего: 3



блин ну тогда дайте ссылку пожалуйста на подобную тему, а лучше скажите как сделать этот код рабочим! просто я даже не знаю по каким критериям искать подобную тему smile


--------------------
PM MAIL ICQ   Вверх
elestrago
Дата 12.2.2008, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 23.8.2007
Где: runet

Репутация: 1
Всего: 3



вот нашел такой кусок кода 

Код

{Разделитель строк, добавляется в конец отсылаемых данных,

можно написать любой, какой нравится/какой вам подойдёт}

Const Delitel : String = #13#10;

 

 

{Процедура обработки строк, S-передаваемая строка,

Socket - Передаваемый сокет откуда пришли данные}

Procedure Process_Message(Var S : AnsiString; Var Socket: TCustomWinSocket);

Begin

{Обрабатываем здесь полученные данные S из сокета Socket}

End;

 

 

{Обработака события по получению данных из ClientSocket,

а так же действенно и для ServerSocket}

procedure TMyForm.ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket);

Var S1,S2 : AnsiString;

   I : Integer;

begin

S1:=Socket.ReceiveText; {Присваиваем S1 полученную строку из Socket}

I:=0;

   Repeat {Разделяем строку, если одновременно пришло несколько}

     I:=Pos(Delitel,S1); {Ищем раздлелитель Delitel в строке S1}

     if I<>0 then {Если найден делитель, тогда ...

     Если не найден, то вы не добавили в конце отсылаемой строки Delitel !}

       Begin

         S2:=Copy(S1,1,I-1);{Копируем одну пришедшую строку в S2}

         Delete(S1,1,I+Length(Delitel)-1);{Удаляем уже скопированную строку}

         Process_Message(S2,Socket);

         {Вызываем процедуру обработки полученных строк,

         где S2 наша выделенная строка}

       End;

   Until I=0; {Повторять, пока будет не найден разделитель Delitel}

end;
 


теперь мне нада сделать так чтобы после названия файла приписывалось #13#10 и отправлялось потом на сокет вот только чето не получается у меня это сделать помогите!

хотя все уже не нада я разобрался smile

Это сообщение отредактировал(а) elestrago - 12.2.2008, 11:49
--------------------
PM MAIL ICQ   Вверх
Qu1nt
Дата 12.2.2008, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 13.1.2007

Репутация: 2
Всего: 50



Ну, в данном случае, у тебя разделитель - listing.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.1253 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.