Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.01.2007, 16:03
NovaC NovaC вне форума
Прохожий
 
Регистрация: 13.11.2006
Сообщения: 24
Репутация: 10
По умолчанию WinToDos & CopyFile

Доброе время суток !

После выполнения function CopyFile
процедура WinToDos начинает выдавать какой-то мусор вместо нормальной строки.
CopyFile и WinToDos находятся в dll библиотеке
Причём если в function CopyFile происходит ошибка при IdFTP.Connect то
procedure WinToDos продолжает работать исправно!!!
Причём проблема появляется как с кирилицей так и с латинскими буквами
Помогите пожалуйста разобраться!!!

procedure WinToDos(const WinStr: pchar; var DosStr: pchar);
var
tmp2 : PChar;
begin
tmp2 := AllocMem(length(WinStr) + 1);
if CharToOem(PChar(WinStr),tmp2) then
DosStr := tmp2
else DosStr := '';
FreeMem(tmp2);
end;

function CopyFile (Copy{Put, Get}, Host, UserName, Password, FTPDir, SourceFile, PutFile : pchar) : boolean;
var
IdFTP : TIdFTP;
begin
result := false;
IdFTP := TIdFTP.Create(nil);

IdFTP.Host := pchar(Host);
IdFTP.UserName := pchar(UserName);
IdFTP.Password := pchar(Password);

try
if IdFTP.Connected = false
then IdFTP.Connect;
except
MessageDlg('Ошибка : IdFTP.Connect!',mtError, [mbOK],0);
IdFTP.Abort;
IdFTP.Free;
exit;
end;
if trim(FTPDir) <> '' then IdFTP.ChangeDir(FTPDir);
try
if trim(Copy) = 'Put' then IdFTP.Put(SourceFile,PutFile,true);
if trim(Copy) = 'Get' then IdFTP.Get(SourceFile,PutFile,true);
except
MessageDlg('Ошибка : IdFTP.' + pchar(Copy) + '()!',mtError, [mbOK],0);
IdFTP.Abort;
IdFTP.Free;
exit;
end;
IdFTP.Disconnect;
IdFTP.Free;
result := true;
end;

Заранее спасибо за ответ . . .
Ответить с цитированием
  #2  
Старый 12.01.2007, 19:55
YCH.Del YCH.Del вне форума
Прохожий
 
Регистрация: 07.12.2006
Сообщения: 22
Репутация: 10
По умолчанию

Ну, начнем с того, что было бы проще оформить WinToDos в виде функции, а не процедуры. Но это, в общем-то, дело вкуса.
Далее. Было бы неплохо показать, как ты вызываешь эти функции.
Еще. Не освобождается IdFTP при except'ах.
Более детально можно что-то рассказать, увидев полностью процедуру вызова фукнций...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:36.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter