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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2007, 11:49   #1
мандарин
Пользователь
 
Регистрация: 22.04.2007
Сообщений: 31
По умолчанию сервер клиент indy

клиент indy записывает в массив текст и отпровляет его серверу а он должен его записать в файл но почемуто не записывает подскажите в чем моя ошибка

{сервер}

var
mas: array [1..500] of string;
i: integer;
fail3 : TextFile;
begin
AThread.Connection.ReadBuffer(mas,5 00);
AssignFile(fail3, 'd:\папка\сервер\03.11.2003\Event.l og');
for i:=1 do 500 to
begin
append(fail3);
Writeln(fail3, mas[i]);
end;
CloseFile(fail3);
end

{********************************** ************}
client
{********************************** *********}
var
bb_mas: array [1..500] of string;
i: integer;

begin
for i:=1 to 500 do
begin
bb_mas[i]:=('text');
end;
client1.WriteBuffer(bb_mas,500,fals e);

end;









мандарин вне форума Ответить с цитированием
Старый 01.06.2007, 00:40   #2
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Цитата:
Сообщение от мандарин Посмотреть сообщение

{сервер}
var
mas: array [1..500] of string;
i: integer;
fail3 : TextFile;
begin
AThread.Connection.ReadBuffer(mas,5 00);
AssignFile(fail3, 'd:\папка\сервер\03.11.2003\Event.l og');
for i:=1 do 500 to
begin
append(fail3);
Writeln(fail3, mas[i]);
end;
CloseFile(fail3);
end
Думаю, надо объявлять массив так
mas: array [1..500] of Char; или mas: array [1..500] of Byte;
а иначе получается попытка считывания в массив не данных, а ссылок, ведь массив строк - это массив ссылок на строки, а сами строки еще нужно создавать/считывать отдельно.
И еще, зачем каждый раз вызывать Append(...)? Ее нужно вызвать только один раз после
AssignFile.

Цитата:
Сообщение от мандарин Посмотреть сообщение
{client}
var
bb_mas: array [1..500] of string;
i: integer;
begin
for i:=1 to 500 do
begin
bb_mas[i]:=('text');
end;
client1.WriteBuffer(bb_mas,500,fals e);
end;
Здесь тоже идет попытка передать не сами строки, а ссылки на них, причем "битые". Наверное нужно или объединить все строки в одну (с какими-то разделителями) или записывать в буфер каждую строку отдельно (в цикле).
Jeni вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сервер клиент Dr.zlo Работа с сетью в Delphi 13 15.06.2009 21:43
Клиент-сервер-клиент Кронос Работа с сетью в Delphi 3 24.08.2007 07:57
Клиент-Сервер snakesoft Работа с сетью в Delphi 8 20.07.2007 17:34
клиент сервер Oksana1988 Фриланс 3 10.04.2007 12:12