![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтение из файла
Daedr © (2007-08-26 12:15:00)procedure TForm1.FormCreate(Sender: TObject);
var
FName: string[80];
FText: TextFile;
Result : integer;
answ:word;
begin
FName:='Data.txt';
AssignFile(FText,FName);
repeat
{$I-}
Reset(FText);
{$I+}
Result:=IOResult;
if Result <> 0
then
answ:=MessageDlg('Ошибка открытия! Not found "'
+ FName+'"'+#13+'Продолжить?',mtWarning, [mbYes, mbNo],0);
until (Result= 0) OR (answ = mrNo);
if Result=0 then
begin
Readln(FText,a,b,c);
edit1.Text:=a;
edit2.Text:=b;
edit3.Text:=c;
timer1.Enabled:=true;
end
else halt(0)
end;
Почему из файла не читается по строчно, т.е. переменной a:=первая срока, b:=вторая...?
Vendict (2007-08-27 14:54:00) [1]Сергей М. © (27.08.07 14:46) [12]
мы не ищем лёгких путей ... зачем нам новый объект, если можно и без него ?!
Сергей М. (2007-08-27 14:46:00) [2]with TStringList.Create do
try
LoadFromFile('Data.txt');
edit1.Text := Strings[0];
edit2.Text := Strings[1];
edit3.Text := Strings[2];
finally
Free;
end;
Daedr (2007-08-27 14:41:00) [3]
> Файл большой ?
нет, даже 1Кб нету.
Сергей М. (2007-08-27 14:33:00) [4]
> Daedr (27.08.07 14:32) [9]
Файл большой ?
Daedr (2007-08-27 14:32:00) [5]
> Опиши, что должно быть в твоем файле. Какие данные. Пример.
Простые текстовые строки. Пример:"Простые текстовые строки."=)
> И попробуй разбей Readln(FText,a,b,c)
Попробую, а пока): можно ли считать из файла часть текста,например от 10 символа, до 25?
> Desdechado
Дело точно не в Reset потому, что раньше работала как надо, а цикл я не трогал.
wp2 (2007-08-27 11:27:00) [6]где ты видишь, чтобы файл закрывался?
И как его можно закрыть, если Readln(FText,a,b,c) все сразу?...
Desdechado (2007-08-27 11:07:00) [7]После открытия файла через Reset указатель ставится всегда на начало файла. Поэтому, если ты хочешь читать файл построчно, не закрывай его (повторный вызов Reset сначала закрывает, потом открывает снова).
wp2 (2007-08-27 00:13:00) [8]в какую, эту?
"Это" у тебя стандартная процедура, которую ты не должен изменять. Хотя...
Вообщим лучше сюда не лезь.
Ты должен свои процедуры делать.
Насчет глобальности не обращай внимание, это в больших программах просто кто-то может запутаться в тысячах переменных.
Опиши, что должно быть в твоем файле. Какие данные. Пример.
Тогда можно будет тебе помочь.
Хотя уже вроде всё и сказали.
И попробуй разбей Readln(FText,a,b,c) на
Readln(FText, a);
Readln(FText, b);
Readln(FText, c);
>Почему из файла не читается по строчно, т.е. переменной a:=первая срока, b:=вторая...?
А как считывается?
ЗЫ. Когда задаете вопросы давайте побольше информации.
Daedr (2007-08-26 13:03:00) [9]Вот в эту:
procedure TForm1.Zamena(Sender: TObject);
var
a2, b2, T: string;
d,i,j: Integer;
begin
a2:=a;
b2:=b;
i:=0;
j:=0;
d:=Length(Memo1.Text);
if d<=Length(a) then
begin
Memo1.Clear;
while a2[i]<>a2[d] do
begin
i:=i+1;
Memo1.Text:=Memo1.Text+a2[i];
a2[i]:='/';
end;
end
else ...
Daedr (2007-08-26 12:57:00) [10]
> Может и глобальные, но этого не видно и не виден тип.
a,b,c:string;
> Конечно можно, если хочешь по жизни искать проблемы, то
> используй глобальные переменные.
А как по другому значение этих пременных передать в другую процедуру?
Anatoly Podgoretsky (2007-08-26 12:52:00) [11]Может и глобальные, но этого не видно и не виден тип.
Конечно можно, если хочешь по жизни искать проблемы, то используй глобальные переменные.
Daedr (2007-08-26 12:49:00) [12]
> Переменные a,b,c не определены в программе.
a, b,c это глобальные переменые, или здесь так нельзя?
Anatoly Podgoretsky (2007-08-26 12:45:00) [13]Переменные a,b,c не определены в программе.
В Readln если одна из переменных текстового типа, то читается вся строка до конца, поскольку не существует возможности определить ее конец.