Вопрос № 61027: Здравствуйте!
Потребовалось создать простой ftp client. Использую компонент idFtp Indy 10.1.1. При вызове IdFTP.Get(FileSource, FileDst); дает ошибку Destination file already exists, хотя файла такого у меня нет. FileExists(FileDest) дает false. ...Вопрос № 61045: Товарищи эксперты! У меня проблема. На форме размещены PageControl, DataSource и Table из закладки BDE. Так вот, при переходе на каждую закладку у меня меняется файл базы(students.db->admin.db). Только при этом переходе
получается ошибка "DbE...Вопрос № 61067: Здраствуйте Уважаемые эксперты,
Помогите пожалуйста решить проблему, как мне можно зделать так чтобы в определённую переменную можно былобы зачунуть значение 127^113.
Посмотрите пожалуйста в приложении, там переменная p должна принимать макси...Вопрос № 61095: Здраствуйте, я пишу файловый менеджер,
написал рекурсивную процедуру поиска файлов.
procedure InsertFiles(From:string);
var
sr:TSearchRec;
begin
Application.ProcessMessages;
if FindFirst(From+'*.*,faAnyFile,sr)=0 ...Вопрос № 61098: Здравствуйте,уважаемые эксепрты!
Помогите, пожалуйста, с созданием динамического двухмерного массива.
Проблема в том, что я не могу определить размер его "второго измерения".
В приложении кусок кода, который у меня уже есть, но ...Вопрос № 61100: Уважаемые эксперты прошу вас ответить на такой вопрос
Создаю таблицы в Database Desktop все в прядке но при открытии в BDE Administrator нажимаю на плюсик чтобы посмотреть наличие их там нет хотя путь указан правильно
Что можете подсказать....Вопрос № 61109: Здравствуйте.
У меня следующая задача: нужно изменить размер jpg-а. То есть я открываю, скажем, файл file.jpg (c высотой 1000 и шириной 2000 пикселей) и мне нужно уменьшить высоту до 640, ширину до 480 и сохранить.
Казалось бы нет ничего про...
Вопрос № 61.027
Здравствуйте!
Потребовалось создать простой ftp client. Использую компонент idFtp Indy 10.1.1. При вызове IdFTP.Get(FileSource, FileDst); дает ошибку Destination file already exists, хотя файла такого у меня нет. FileExists(FileDest) дает false. Что у меня неправильно?
Приложение:
Отправлен: 02.11.2006, 13:55
Вопрос задал: dobroman (статус: 2-ой класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: PaVeL_Ekt
Здравствуйте, dobroman!
Попробуй
IdFTP.Get(FileSource, FileDst, True);
Или лучше сделай
...
if SaveDialog1.execute then
if FileExists(savedialog1.filename
if MessageDlg('Rewrite File',MtConfirmation,[mbYes,mbNo],0)=mrNo then Exit else
begin
...
IdFTP.Get(FileSource, SaveDialog1.FileName, True); // True - перезаписывать если уже существует !!!
end;
И пробуй разные каталоги и файлы
Приложение:
--------- Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 4-ый класс)
Ответ отправлен: 02.11.2006, 14:18
Вопрос № 61.045
Товарищи эксперты! У меня проблема. На форме размещены PageControl, DataSource и Table из закладки BDE. Так вот, при переходе на каждую закладку у меня меняется файл базы(students.db->admin.db). Только при этом переходе получается ошибка "DbEdit27: P_chten not found". DbEdit27 это текстовое поле с одной из форм, она использует как раз students.db(P_chten - одно из полей). Ошибка происходит сразу же после Table1.Active:=true. Помогите пожалуйста.
Отправлен: 02.11.2006, 16:48
Вопрос задал: EZ1k (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: PaVeL_Ekt
Здравствуйте, EZ1k!
возможно в Table1 не добавленно данное поле, двойной клик по таблу добавить все поля.
очень легко проверить добавь DBGrid Прилинкуй и увидеш какие поля грузяться, а какие нет.
а без кода трудно сказать в чем проблема, может в коде !!!
--------- Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 4-ый класс)
Ответ отправлен: 03.11.2006, 07:10
Вопрос № 61.067
Здраствуйте Уважаемые эксперты,
Помогите пожалуйста решить проблему, как мне можно зделать так чтобы в определённую переменную можно былобы зачунуть значение 127^113.
Посмотрите пожалуйста в приложении, там переменная p должна принимать максимальное значение 127^113.
з.ы Я знаю что лонгинт для етого будет мало.
Приложение:
Отправлен: 02.11.2006, 21:40
Вопрос задал: Станислав (статус: 1-ый класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: DeVampir
Здравствуйте, Станислав!
Никаким стандартным способом этого не сделать. Придется реализовывать "длинную" арифметику. Ее суть в том, что число (возьмем десятичную СС) разбивается на разряды (т.е. на цифры - можно по 2 или больше) и каждый разряд записывается в отдельную ячейку массива. Массив разумеется должен быть динамическим (иначе он будет ограничен по вместимости) и нулевой его элемент может обозначать количество разрядов (длину массива). Затем нужно реализовать процедуры сложения длинных чисел (складываем каждый разряд
и если сумма больше, добавляем единицу в старший разряд) и умножения на число (такой же принцип - каждый разряд умножаем на число). После этого придется еще сделать перемножение двух длинных чисел, возведение в степень и нахождение остатка от деления (через вычитание или умножение). Потом можно, оперируя созданным типом, легко решить Вашу задачу. Удачи!!!
--------- Нам будет трудно - это терпимо! (с) М. Горшенев
Ответ отправил: DeVampir (статус: 3-ий класс)
Ответ отправлен: 03.11.2006, 05:49
Отвечает: PaVeL_Ekt
Здравствуйте, Станислав!
а зачем такое громадное значение ???
даже самый большой инт это Int64 = 2^63-1
во вторых в приложении p сперва записывается как константа, а затем
в обработчиках обоих кнопок переприсваиваеться.
а работать с очень большими числами можно примерно так:
предварительно перед умножением двух чисел после которого получаеться число выходящее за рамки эти числа делить на определенное число,
а когда нужно, умножать.
можно еще попробовать работать через стринг, но анализ нужен очень большой.
--------- Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 4-ый класс)
Ответ отправлен: 03.11.2006, 06:59
Отвечает: chikanok
Здравствуйте, Станислав!
Вам уже дали ответ на ваш вопрос, я лишь хочу дать вам линк на модуль по работе с мультиразрядными числами. Вы реализуете шифрование и он вам подойдёт, но в нём к сожалению нет функции mod. Сейчас работаю над этим.
Удачи!
Приложение:
--------- Главное желание,а там разберёмся!
Ответ отправил: chikanok (статус: 2-ой класс)
Ответ отправлен: 03.11.2006, 19:58 Оценка за ответ: 5 Комментарий оценки: Спасибо :)
Вопрос № 61.095
Здраствуйте, я пишу файловый менеджер,
написал рекурсивную процедуру поиска файлов.
procedure InsertFiles(From:string);
var
sr:TSearchRec;
begin
Application.ProcessMessages;
if FindFirst(From+'*.*,faAnyFile,sr)=0 then
repeat
if(sr.Name<>'.')and (sr.Name<>'..') then
if (sr.Attr=faDirectory) then begin
//FormMain.Memo1.Lines.Add(From+sr.name);
InsertFiles(from+sr.Name+'\');
end
else
FormMain.Memo1.Lines.Add(from+sr.name);
until FindNext(sr)<>0;
FindClose(sr);
end;
Проблема в том что она не находит файлы в каталогах на дисках. То есть: она находит файлы в корневом каталоге диска, находит сами папки (закоментированная строчка), но она в них не заходит.
При этом если задать поиск на жестком диске то все работает отлично.
Отправлен: 03.11.2006, 06:01
Вопрос задал: Yujin (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Monah
Здравствуйте, Yujin!
Вы поставили слишком много слешей. И зачем такая конструкция "+'' " Почему слешь перед кавычками то! Поставте точку прерывания на строку
InsertFiles(from+''+sr.Name');
И проверяйте значение S
Приложение:
--------- festina lente
Ответ отправил: Monah (статус: 6-ой класс)
Ответ отправлен: 03.11.2006, 06:48
Отвечает: PaVeL_Ekt
Здравствуйте, Yujin!
Вообщем делай так, я проверил - работает
токо мемо на листбокс поменял, и добавил кнопку отмены поиска !!!
Приложение:
--------- Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 4-ый класс)
Ответ отправлен: 03.11.2006, 07:22
Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Yujin!
Ага! Я, похоже, догадался, в чем дело.
Папки на CD отличаются от папок на HDD только одним: они ReadOnly, также, как и все остальные файлы.
И sr.Attr для них будет (faDirectory or faReadOnly).
Вообще, писать вот так:
if (sr.Attr=faDirectory) then begin
не очень корректно. Посмотрите примеры в справке (на TSearchRec) - там (внизу) делается маскирование, а не сравнение -
if ((sr.Attr and faDirectory) <> 0) then begin
В общем, исправьте, как я сказал - должно заработать.
--------- Не узнаешь - не попробуешь.
Ответ отправил: Сухомлин Кирилл Владимирович (статус: Практикант)
Ответ отправлен: 03.11.2006, 09:56 Оценка за ответ: 5 Комментарий оценки: спасибо работает, проблема в этом и оказалась
Вопрос № 61.098
Здравствуйте,уважаемые эксепрты!
Помогите, пожалуйста, с созданием динамического двухмерного массива.
Проблема в том, что я не могу определить размер его "второго измерения".
В приложении кусок кода, который у меня уже есть, но он определяет только одно "измерение".
Заранее благодарен.
Приложение:
Отправлен: 03.11.2006, 07:10
Вопрос задал: Delphi (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: PaVeL_Ekt
Здравствуйте, Delphi!
Делай так SetLength(mas, 100, 100);
--------- Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 4-ый класс)
Ответ отправлен: 03.11.2006, 07:17 Оценка за ответ: 5 Комментарий оценки: Спасибо! Как раз то что нужно!
Отвечает: Олекса aka SoW
Здравствуйте, Delphi!
Чтобы задать всем столбцам одинаковый размер можна зделать так:
SetLength(mas,100);
for i:=1 to 100 do SetLength(mas[i], 100);
Для динамических массивов можно также задавать разные диапазоны одного измерения.
SetLength(mas,100);
for i:=1 to 100 do SetLength(mas[i], i);
В результате выполнения получится массив, в котором 100 строк, первый столбец имеет 1 елемент, второй 2 и т.д.
--------- Вiк живи - вiк учись.
Ответ отправил: Олекса aka SoW (статус: 2-ой класс)
Ответ отправлен: 03.11.2006, 07:43 Оценка за ответ: 5 Комментарий оценки: Спасибо! Нужно создать "квадратный" массив.
Отвечает: Юрий Викторович
Здравствуйте, Delphi!
после 100 через запятую указывай размер второго измерения.
В 6-м делфи работает. Пример в приложении.
Приложение:
Ответ отправил: Юрий Викторович (статус: 1-ый класс)
Ответ отправлен: 03.11.2006, 14:47 Оценка за ответ: 5 Комментарий оценки: Спасибо.
Отвечает: Sattar
var
mas : array of array of real;
i:integer;
begin
SetLength(mas,100);
for i:=0 to 100-1 do
SetLength(mas[i],100);
end;
Ответ отправил: Sattar (статус: 2-ой класс)
Ответ отправлен: 05.11.2006, 13:48
Вопрос № 61.100
Уважаемые эксперты прошу вас ответить на такой вопрос
Создаю таблицы в Database Desktop все в прядке но при открытии в BDE Administrator нажимаю на плюсик чтобы посмотреть наличие их там нет хотя путь указан правильно
Что можете подсказать. Хочу создать локальную базу данных но таблицы не прописываются в проекте и DBGril не может открыть заголовков таблиц почему
При создании локальных баз я пользовался такой фишкой:
при использовании Table
в свойство TableName прописываем название файла таблицы, вместе с путем.
(пример: c: empase1.dbf)
при нахождении файла базы данных вместе с EXE файлом путь указывать не нужно.
при использовании Query
в свойство DataBaseName прописываем директорию где храняться файлы базы данных.
попробуй так, минуя BDE Administrator
если не поможет
попробуй переустановить DBE (движок БД)
в инете помоему так и называеться.
--------- Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 4-ый класс)
Ответ отправлен: 03.11.2006, 07:34
Вопрос № 61.109
Здравствуйте.
У меня следующая задача: нужно изменить размер jpg-а. То есть я открываю, скажем, файл file.jpg (c высотой 1000 и шириной 2000 пикселей) и мне нужно уменьшить высоту до 640, ширину до 480 и сохранить.
Казалось бы нет ничего проще, но не выходит каменный цветок.
Отправлен: 03.11.2006, 09:19
Вопрос задал: Rusland (статус: Специалист)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Rusland!
Алгоритм следующий:
1. Загружаем изображение в TJPEGImage1
2. копируем через буфер в TBitMap1
3. Масштабируем: (в TBitMap2)
Учитывая, что вам все-таки придется использовать неравномерное масштабирование, то просто CopyRect может не хватить. А может и хватить - попробуйте. Иначе - билинейная/бикубическая интерполяция ждет вас с распростертыми объятиями.
4. Копируем через буфер в TJPEGImage2 и сохраняем в файл.
При желани, можно уменьшить кол-во используемых переменных (изображений).
А еще подумайте, зачем вам такая программа. Не проще ли будет это реализовать через Photoshop Scripting?