Crytach Daiguren Ответов: 1

Здравствуйте у меня есть Дельфи вопрос который гложет меня и мне нужна помощь


"Это проект delphi, с которым мне нужна помощь, как в истории программирования проекта" хорошо, так что все идет так, у меня есть свой код, конкретизированный в поисковой системе, где в основном, если вы ищете пустой Tedit, он даст вам ошибку, теперь я попал в дорожный блок, так как я хочу, чтобы он произвел новую ошибку, если искомый элемент не существует... это код, который съедает меня.
procedure TForm1.BtnSearchClick(Sender: TObject);
var
sStudent :String;
begin
    sStudent:=CbSearch.Text;
 if sStudent = ''
then
begin
    Application.MessageBox('No data has been inputed. Please Input a name to search', 'Error no information to search', 0);
end
else
begin
    RDisp.Lines.LoadFromFile('Students\' + sStudent + '.zip');
end;
end;


Я знаю, что ниже "Rdisp.Строки " Мне нужно предоставить еще один условный оператор if, но я не знаю, как это сделать... Пожалуйста помочь

Что я уже пробовал:

Я пытался добавить оператор if, но я избавился от него, как только он разбил мою программу... я знаю, что мне нужно "if sStudent=" "и т. д., Но я понятия не имею, что это делать...

0x01AA

Трудно понять, в чем проблема, по крайней мере, для меня.
Вам нравится проверять, существуют ли файлы?
Является ли проблема LoadFromFile? Какой тип RDisp, что вы можете загрузить в него zip-файл?

Crytach Daiguren

Ах да... RDisp это richedit'у, в основном то, что я хочу, это, если вы будете искать "Марио" в поле tedit он будет отображать сообщение об ошибке, которое говорит: "ученик не бывает", как я это studnent данные хранятся в защищенных zip-файлов, и это работает прекрасно, я просто хочу есть условие, что если искомое слово не существует, то я получаю сообщение об ошибке.

0x01AA

Я предполагаю, что вам нравится искать его i The RichEdit. Если да, то посмотрите здесь, в принятом ответе:
фильтр-подсчет определенного текста в памятке (Delphi) - переполнение стека[^]. Пример предназначен для Memo, но я помню, что RichText также имеет свойство Lines.

Crytach Daiguren

Нет, давайте посмотрим, смогу ли я правильно это сформулировать... когда данные студентов сохраняются, они сохраняются в "Students_name.zip" когда я ищу это имя "Students_Name", оно выводит данные в richedit (это все уже сделано, так что мне не нужна помощь для этого)... теперь я хочу сделать условие" если имя студента не существует, то отобразите сообщение об ошибке "студент не существует", подобное тому, которое вы видите выше.

0x01AA

Что именно означает "если имя студента не существует"? Файл не существует?
¿Qué significa "если имя студента не существует" exactamente? Нет я не такая как все Эль-архив "....\Students_Name.zip"?

Crytach Daiguren

Вся информация о студенте хранится в папке в формате " StudentName StudentSurname.zip "например" Макс Johnson.zip "теперь гипотетически говоря, Макс Джонсон-единственный студент на записи, поэтому, если я ищу, например, "Элис Богард", он должен сказать как сообщение об ошибке "студент не существует", я хочу, чтобы код для окна сообщения об ошибке мог это сделать, потому что на данный момент, когда я делаю поиск несуществующего студента, программа выходит из строя, когда мне просто нужно простое "студент не существует"."

0x01AA

Смотрите решение Ричарда Диминга, я тоже думаю сейчас, что вы ищете FileExists.

Crytach Daiguren

Спасибо Ричарду Димингу!!! Прекрасно работает

1 Ответов

Рейтинг:
7

Richard Deeming

Это звучит так, как будто вы ищете то FileExists функция[^]:

if sStudent = ''
then
begin
    Application.MessageBox('No data has been inputed. Please Input a name to search', 'Error no information to search', 0);
end
else if Not FileExists('Students\' + sStudent + '.zip')
then
begin
    Application.MessageBox('Student file not found.', 'Error file not found', 0);
end
else
begin
    RDisp.Lines.LoadFromFile('Students\' + sStudent + '.zip');
end;

Однако пока неясно, будет ли это сделано. то LoadFromFile метод[^] поддерживает чтение Zip-файлов. Я бы ожидал, что он будет поддерживать только текстовые файлы.