Member
Статус: Не в сети Регистрация: 27.05.2006 Откуда: Saransk
все спасиб Добавлено спустя 1 час, 50 минут, 53 секунды Максим , что то никак не получается... пишу следущее
Код:
if not IdFTP1.Connected then Exit; Name:=IdFTP1.DirectoryListing.Items[DirectoryListBox.ItemIndex].FileName; if IdFTP1.DirectoryListing.Items[DirectoryListBox.ItemIndex].ItemType=ditDirectory then If DirectoryListBox.ItemIndex <> -1 Then Memo1.Lines.Clear; Memo1.Lines.LoadFromFile(DirectoryListBox.Items[DirectoryListBox.ItemIndex]); end;
выдает все туже ошибку про невозможность найти файл..
Member
Статус: Не в сети Регистрация: 05.01.2003 Откуда: Москва Фото: 2
mp3corp Ну потому что ты все сделал так же, как написал и я в примере Просто использовал другой компонент.
Тебе надо по другому сделать - или загрузить файл в temp директорию (с помощью Idftp) и оттуда его грузить, либо же открыть файл как поток с помощью ftp, и тогда уже грузить потоком в Memo (Memo1.Lines.LoadFromStream(MyStream)).
_________________ Устав традиций нужно соблюдать, Хоть и не раз ответят вам отказом: Конечно, баба может и не дать, Но предложить ты ей всегда обязан!
Member
Статус: Не в сети Регистрация: 27.05.2006 Откуда: Saransk
теперь заработало :
Код:
if not IdFTP1.Connected then Exit; Name:=IdFTP1.DirectoryListing.Items[DirectoryListBox.ItemIndex].FileName; if IdFTP1.DirectoryListing.Items[DirectoryListBox.ItemIndex].ItemType=ditDirectory then begin // ChageDir(Name); end else begin try SaveDialog1.FileName:=Name; if SaveDialog1.Execute then begin IdFTP1.TransferType:=ftBinary; BytesToTransfer:=IdFTP1.Size(Name); if FileExists(Name) then begin case MessageDlg('Oaeie oaee o?a nouanoaoao, oioeoa i?iaie?eou caa?oceo oaeea?', mtConfirmation, mbYesNoCancel, 0) of mrYes: begin BytesToTransfer:=BytesToTransfer-FileSizeByName(Name); IdFTP1.Get(Name, SaveDialog1.FileName, false, true); end; mrNo: begin IdFTP1.Get(Name, SaveDialog1.FileName, true); end; mrCancel: begin Exit; end; end; end else IdFTP1.Get(Name, SaveDialog1.FileName, false); end; finally Memo1.Lines.LoadFromFile(Name);
Member
Статус: Не в сети Регистрация: 27.05.2006 Откуда: Saransk
с ним проще Добавлено спустя 1 минуту, 30 секунд просто не знал как по другому сделать Добавлено спустя 1 минуту, 50 секунд просто я по другому не знал как
_________________ Я рвусь от новостей так быстро мир стал другой.
Member
Статус: Не в сети Регистрация: 05.01.2003 Откуда: Москва Фото: 2
mp3corp Ясно, мог бы спросить.
Код:
Function MyGetTempPath: String; Var Buffer: Array[0..1023] Of Char; Begin SetString(Result, Buffer, GetTempPath(Sizeof(Buffer) - 1, Buffer)); End;
Function ExtractOnlyFileName(FileName: String): String; Begin Result := ExtractFileName(FileName); SetLength(Result, Length(Result) - Length(ExtractFileExt(Result))); End;
Var TempFileName: String; Begin Randomize; TempFileName := MyGetTempPath + '\' + ExtractOnlyFileName(Application.ExeName) + IntToStr(Random(1000000)) + '.txt';
Member
Статус: Не в сети Регистрация: 27.05.2006 Откуда: Saransk
Максим попробую твой вариант, если заработает, то наверное его оставлю. Уже в который раз выручаешь...... Есть же ещё добрые люди на свете.. Добавлено спустя 14 минут, 11 секунд так что то не хотит работать, хотя ошибок тож не выводит... такой вопрос в месте где написано Bla bla bla что то надо вставлять? Я вставил следущее
Код:
TempFileName:=IdFTP1.DirectoryListing.Items[DirectoryListBox.ItemIndex].FileName; if IdFTP1.DirectoryListing.Items[DirectoryListBox.ItemIndex].ItemType=ditDirectory
Member
Статус: Не в сети Регистрация: 05.01.2003 Откуда: Москва Фото: 2
mp3corp Ну ок
Добавлено спустя 5 минут, 9 секунд mp3corp То есть у тебя в итоге должно получиться примерно вот что:
Код:
Function MyGetTempPath: String; Var Buffer: Array[0..1023] Of Char; Begin SetString(Result, Buffer, GetTempPath(Sizeof(Buffer) - 1, Buffer)); End;
Function ExtractOnlyFileName(FileName: String): String; Begin Result := ExtractFileName(FileName); SetLength(Result, Length(Result) - Length(ExtractFileExt(Result))); End;
bla bla bla TempFileName := MyGetTempPath + '\' + ExtractOnlyFileName(Application.ExeName) + IntToStr(Random(1000000)) + '.txt';
if not IdFTP1.Connected then Exit; Name:=IdFTP1.DirectoryListing.Items[DirectoryListBox.ItemIndex].FileName; if IdFTP1.DirectoryListing.Items[DirectoryListBox.ItemIndex].ItemType=ditDirectory then begin // ChangeDir(Name); end else begin try IdFTP1.TransferType:=ftBinary; BytesToTransfer:=IdFTP1.Size(Name); IdFTP1.Get(Name, TempFileName , true); finally Memo1.Lines.LoadFromFile(TempFileName); DeleteFile(TempFileName ); end; end;
_________________ Устав традиций нужно соблюдать, Хоть и не раз ответят вам отказом: Конечно, баба может и не дать, Но предложить ты ей всегда обязан!
Member
Статус: Не в сети Регистрация: 27.05.2006 Откуда: Saransk
Максим да пока ещё не ок в мемо-то нечего не выводится Добавлено спустя 19 минут, 42 секунды чет вобще странности пошли, теперь ругается на функцию ChangeDir , говорит что это не объявленный идентиф-р, .. Добавлено спустя 11 минут, 24 секунды такая особенность файлик ф темпах появляется (удалил строку DeleteFile) но его размер о Байт Добавлено спустя 2 минуты, 58 секунд ладно оставлю своц вариант и нефиг больше париться! Добавлено спустя 34 минуты, 2 секунды Максим все правильно ты мне написал, сам сглупил ещё раз спасибо!!!!!!! Все отображается
_________________ Я рвусь от новостей так быстро мир стал другой.
все это пишу в событии Form1.Show, но ничего не отображается... помогите разобраться Добавлено спустя 52 минуты, 3 секунды или вывести имена файлов текущей директории в которой находимся Добавлено спустя 22 минуты, 27 секунд уже сам разобрался
_________________ Я рвусь от новостей так быстро мир стал другой.
Member
Статус: Не в сети Регистрация: 29.01.2005 Откуда: Москва
Помогите пожайлуста с программкой Нужна программа которая бы на COM порт могла отсылать несоклько команд, в ASCII либо в HEX не знаю как ей там удобнее. Сложно это вообще сделать? Я года 4 назад что то кодил на делфи, но очень не серьезно, калькуляторы всякие и прочую чепуху
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения