Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2007, 11:41   #1
Captain Nemo
 
Регистрация: 02.05.2007
Сообщений: 8
По умолчанию Вывести конкретную строку из файла

Вывел алгоритм случайных не повторяющихся чисел, а вот вывести по этим числам строки из файла ни как не получается. Помогите кто чем может, буду очень блогадарен.

var
TIntegerList: TStringList;
Added: Boolean;
i, Number: Cardinal;
begin
TIntegerList:=TStringList.Create;
TIntegerList.Sorted:=True;
TIntegerList.Duplicates:=dupError;
TIntegerList.LoadFromFile('ptb.txt' );
for i:=1 to 7 do
begin
Added:=False;
repeat
Randomize;
try
Number:=Random(StrToInt(Label1.Capt ion)+1);
if Number <> 0 //Исключаем ноль
then begin
TIntegerList.Add(IntToStr(Number));
Added:=True;
end
else Added:=False
except
on EStringListError do Added:=False
end
until Added = True;
if i=1 then begin
Edit1.Text:=IntToStr(Number);
Edit8.Text:=TIntegerList.Strings[StrToInt(Edit1.Text)];
end;
if i=2 then begin
Edit2.Text:=IntToStr(Number);
Edit9.Text:=TIntegerList.Strings[StrToInt(Edit2.Text)];
end;
if i=3 then begin
Edit3.Text:=IntToStr(Number);
Edit10.Text:=TIntegerList.Strings[StrToInt(Edit3.Text)];
end;
if i=4 then begin
Edit4.Text:=IntToStr(Number);
Edit11.Text:=TIntegerList.Strings[StrToInt(Edit4.Text)];
end;
if i=5 then begin
Edit5.Text:=IntToStr(Number);
Edit12.Text:=TIntegerList.Strings[StrToInt(Edit5.Text)];
end;
if i=6 then begin
Edit6.Text:=IntToStr(Number);
Edit13.Text:=TIntegerList.Strings[StrToInt(Edit6.Text)];
end;
if i=7 then begin
Edit7.Text:=IntToStr(Number);
Edit14.Text:=TIntegerList.Strings[StrToInt(Edit7.Text)];
end;
end;
TIntegerList.Destroy;
end;
Captain Nemo вне форума Ответить с цитированием
Старый 08.05.2007, 15:00   #2
Viteef
stopfake.org
Участник клуба
 
Регистрация: 03.05.2007
Сообщений: 1,927
По умолчанию

Я так понял файл текстовый. Можно так:
var
f:textfile;
i:longint;
s:string[255]; //Строка
posit:longint;//Номер строки
begin
posit:=...номер строки
reset(F);
for i:=0 to posit do
begin
readln(f,s);//Переход на следующую строчку
if i=posit then READLN(F,S);//чтение позиции в S
end;
Вывести строку с определенным номером можно (насколько мне известно) только перебором каждой строчки, используя for и READLN(Наверное вам понятно почему READLN а не READ!).

Удачи!

Последний раз редактировалось Viteef; 08.05.2007 в 15:09. Причина: Исправление
Viteef вне форума Ответить с цитированием
Старый 09.05.2007, 06:11   #3
Captain Nemo
 
Регистрация: 02.05.2007
Сообщений: 8
По умолчанию

Как вывести S в Edit1, почему когда Posit:=0 выводится ЯЪt`Юt, а когда ставлю другое целое число, постоянно выводится только первая строка файла? Буду ОЧЕНЬ благодарен за помощь.

Последний раз редактировалось Captain Nemo; 09.05.2007 в 08:33.
Captain Nemo вне форума Ответить с цитированием
Старый 09.05.2007, 12:15   #4
Viteef
stopfake.org
Участник клуба
 
Регистрация: 03.05.2007
Сообщений: 1,927
По умолчанию

У меня это работало.

procedure TForm1.FormCreate(Sender: TObject);
begin
assignfile(f,'c:\text.txt');
posit:=2;
if fileexists ('c:\text.txt')=false then rewrite(f) else reset(F);

if posit=1 then
begin
reset(f);
read(f,s);
end else
for i:=2 to posit do
begin
readln(f,s);
if i=posit then READLN(F,S);
end;

edit1.Text:=s;
CloseFile(f);//Если файл больше не нужен
end;
Вложения
Тип файла: rar help.rar (5.6 Кб, 34 просмотров)

Последний раз редактировалось Viteef; 09.05.2007 в 12:18.
Viteef вне форума Ответить с цитированием
Старый 10.05.2007, 03:28   #5
Captain Nemo
 
Регистрация: 02.05.2007
Сообщений: 8
По умолчанию

Спасибо!!! Обращайся, если смогу, буду рад помочь. Закончу, выложу результат.

Последний раз редактировалось Captain Nemo; 10.05.2007 в 03:33.
Captain Nemo вне форума Ответить с цитированием
Старый 10.05.2007, 14:04   #6
Captain Nemo
 
Регистрация: 02.05.2007
Сообщений: 8
По умолчанию

Опять не выходит!!!!!!!!

Когда добавляю кнопку и к ней прописываю, т.е. как только пишу if:

if T_Category.Text='Водители участка СМ и АТ ЮЭС'
then begin
fTest:='Data\Category'+'01\'+'ptb.t xt';
SelectionOfNumbersClick(Sender); // процедура разных чисел
end;
if T_Category.Text='Дежурные электромантеры подстанций'
then begin
fTest:='Data\Category'+'02\'+'ptb.t xt';
SelectionOfNumbersClick(Sender); // процедура разных чисел
end;

то из-за нее (из-за процедуры см. Captain Nemo Вывести конкретную строку из... 08.05.2007, 10:41) возникает проблема... прога виснет. КАРАУЛ!!!!! ...ааааааааааа
Captain Nemo вне форума Ответить с цитированием
Старый 10.05.2007, 16:20   #7
Viteef
stopfake.org
Участник клуба
 
Регистрация: 03.05.2007
Сообщений: 1,927
По умолчанию

Не совсем понятен смысл программы, что она должна делать?
Исходник добавил бы ясности...
Viteef вне форума Ответить с цитированием
Старый 11.05.2007, 03:17   #8
Captain Nemo
 
Регистрация: 02.05.2007
Сообщений: 8
По умолчанию

Могу отправить исходник, нужен твой е-маил. Пробовал прикрепить к сообщению файл, но ни чего не вышло, выдает соообщение об ошибке URL, видимо размер файла велик. Мой yuri_ermilov@mail.ru

Последний раз редактировалось Captain Nemo; 11.05.2007 в 03:41.
Captain Nemo вне форума Ответить с цитированием
Старый 12.05.2007, 23:15   #9
Viteef
stopfake.org
Участник клуба
 
Регистрация: 03.05.2007
Сообщений: 1,927
По умолчанию

vit-p@ukr.net
Viteef вне форума Ответить с цитированием
Старый 15.05.2007, 03:44   #10
Captain Nemo
 
Регистрация: 02.05.2007
Сообщений: 8
По умолчанию

Все! Я сделал ее!
Captain Nemo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывести строку задом-наперёд (assembler) Nikolai_90 Помощь студентам 1 03.06.2008 08:03
Как вывести из текстового файла на экран русский текст? Mischa Помощь студентам 8 12.03.2008 06:23
Вывести информацию из типизированного файла в combobox... tacer Помощь студентам 1 04.12.2007 11:46
Считать определенную строку из файла DimkinStd Работа с сетью в Delphi 4 15.02.2007 22:30