![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Нужно составить программу, в которой будет кнопка Button и многострочный редактор Memo. При нажатии на кнопку вызывается диалог открытия файла(с помощью компонента OpenDialog) и содержимое выбранного файла отображается в Memo. Если файл имеет имя demo(в любом регистре), то текст отображается одним шрифтом, если другое-другим. Как такое реализовать я в целом знаю, но как сделать проверку на имя файла? Я знаю, что имя файла хранится в OpenDialog.FileName, но дело в том, что там находится путь к нему. К примеру, выбрав файл Demo в папке "папка1", в OpenDialog.FileName будет находиться следующий текст: "C:\папка1\demo.txt". Как тогда осуществить проверку имени файла? С конца что ли? Мне кажется, должен быть какой-то другой путь. Нет ли переменной, в которой будет храниться само имя файла, а не путь к нему?
Последний раз редактировалось Diplomate, 10.11.2012 в 21:04. |
|
#2
|
||||
|
||||
|
AnsiUpperCase, AnsiLowerCase и вперёд.
|
|
#3
|
||||
|
||||
|
Цитата:
Код:
if AnsiSameText('demo.txt', ExtractFileName(OpenDialog1.FileName)) thenКод:
if AnsiSameText('demo', ChangeFileExt(ExtractFileName(OpenDialog1.FileName), '')) then |
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
Diplomate (12.11.2012)
| ||
|
#4
|
|||
|
|||
|
Большое спасибо.
![]() У меня тут еще один вопрос. Нужно создать программу, состоящую из двух таблиц(5x5 и 1x5) и кнопки "Расчет". Суть задания в том, чтобы все числа в строке первой таблицы складывались и их сумма отображалась в соответствующей строке второй таблицы. Я составил код, но после заполнения первой таблицы и нажатия кнопки "Расчет" во второй таблице ничего не пишется! Вот код(Tab1 и Tab2 соответственно первая и вторая таблицы): Код:
procedure TForm1.Button1Click(Sender: TObject);
var i,j,n:integer;
c:real;
b:boolean;
begin
b:=true; //b-логическая переменная, которой присваивается значение false, если найдена пустая ячейка(проверка, что все ячейки строки
//заполнены)
c:=0; //c-переменная. в которой хранится сумма
for i:=0 to Tab1.RowCount do
begin
for j:=0 to Tab1.ColCount do
if Tab1.Cells[i,j]='' then //если ячейка пустая, то b:=0
b:=false;
if b=true then //если b=true, то все ячейки заполнены, в этом случае мы подсчитываем сумму
begin
for n:=0 to Tab1.ColCount do
c:=c+StrToFloat(Tab1.Cells[i,n]);
Tab2.Cells[i,0]:=FloatToStr(c);
end;
end;
end; Последний раз редактировалось Diplomate, 11.11.2012 в 18:41. |
|
#5
|
||||
|
||||
|
Цитата:
Ещё неправильно заданы диапазоны в циклах. Должно быть так: Код:
for i:=0 to Tab1.RowCount - 1 do ..... for j:=0 to Tab1.ColCount - 1 do ..... for n:=0 to Tab1.ColCount - 1 do |
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
Diplomate (12.11.2012)
| ||
|
#6
|
|||
|
|||
|
Премного благодарен.
Последний раз редактировалось Diplomate, 12.11.2012 в 21:45. |
|
#7
|
|||
|
|||
|
Написал другую программу Делфи, сохранил ее. Теперь, когда я открываю программу и пытаюсь ее запустить, на экран выводится пустая форма, хотя код и все остальное есть. Что за хрень???
Снимаю вопрос, программа мистическим образом снова стала работать. |