Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.23;
Скачать: CL | DM;

Вниз

Чтение из файла   Найти похожие ветки 

 
Daedr   (2007-08-26 12:15) [0]

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:=вторая...?


 
Anatoly Podgoretsky ©   (2007-08-26 12:45) [1]

Переменные a,b,c не определены в программе.
В Readln если одна из переменных текстового типа, то читается вся строка до конца, поскольку не существует возможности определить ее конец.


 
Daedr   (2007-08-26 12:49) [2]


> Переменные a,b,c не определены в программе.

a, b,c это глобальные переменые, или здесь так нельзя?


 
Anatoly Podgoretsky ©   (2007-08-26 12:52) [3]

Может и глобальные, но этого не видно и не виден тип.
Конечно можно, если хочешь по жизни искать проблемы, то используй глобальные переменные.


 
Daedr   (2007-08-26 12:57) [4]


> Может и глобальные, но этого не видно и не виден тип.

a,b,c:string;

> Конечно можно, если хочешь по жизни искать проблемы, то
> используй глобальные переменные.

А как по другому значение этих пременных передать в другую процедуру?


 
Daedr   (2007-08-26 13:03) [5]

Вот в эту:
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 ...


 
wp2 ©   (2007-08-27 00:13) [6]

в какую, эту?

"Это" у тебя стандартная процедура, которую ты не должен изменять. Хотя...
Вообщим лучше сюда не лезь.

Ты должен свои процедуры делать.
Насчет глобальности не обращай внимание, это в больших программах просто кто-то может запутаться в тысячах переменных.

Опиши, что должно быть в твоем файле. Какие данные. Пример.
Тогда можно будет тебе помочь.

Хотя уже вроде всё и сказали.

И попробуй разбей Readln(FText,a,b,c) на
Readln(FText, a);
Readln(FText, b);
Readln(FText, c);

>Почему из файла не читается по строчно, т.е. переменной a:=первая срока, b:=вторая...?
А как считывается?

ЗЫ. Когда задаете вопросы давайте побольше информации.


 
Desdechado ©   (2007-08-27 11:07) [7]

После открытия файла через Reset указатель ставится всегда на начало файла. Поэтому, если ты хочешь читать файл построчно, не закрывай его (повторный вызов Reset сначала закрывает, потом открывает снова).


 
wp2 ©   (2007-08-27 11:27) [8]

где ты видишь, чтобы файл закрывался?

И как его можно закрыть, если Readln(FText,a,b,c) все сразу?...


 
Daedr   (2007-08-27 14:32) [9]


> Опиши, что должно быть в твоем файле. Какие данные. Пример.

Простые текстовые строки. Пример:"Простые текстовые строки."=)

> И попробуй разбей Readln(FText,a,b,c)

Попробую, а пока): можно ли считать из файла часть текста,например от 10 символа, до 25?

> Desdechado

Дело точно не в Reset потому, что раньше работала как надо, а цикл я не трогал.


 
Сергей М. ©   (2007-08-27 14:33) [10]


> Daedr   (27.08.07 14:32) [9]


Файл большой ?


 
Daedr   (2007-08-27 14:41) [11]


> Файл большой ?

нет, даже 1Кб нету.


 
Сергей М. ©   (2007-08-27 14:46) [12]

with TStringList.Create do
try
 LoadFromFile("Data.txt");
 edit1.Text := Strings[0];
 edit2.Text := Strings[1];
 edit3.Text := Strings[2];
finally
 Free;
end;


 
Vendict ©   (2007-08-27 14:54) [13]

Сергей М. ©   (27.08.07 14:46) [12]

мы не ищем лёгких путей ... зачем нам новый объект, если можно и без него ?!



Страницы: 1 вся ветка

Текущий архив: 2007.09.23;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.024 c
2-1188395804
hprx
2007-08-29 17:56
2007.09.23
Разрешение экрана


11-1170931264
Dodfr
2007-02-08 13:41
2007.09.23
Problem with Vista


11-1171784746
Ned
2007-02-18 10:45
2007.09.23
Закрытие программы :)


15-1187811709
Vlad Oshin
2007-08-22 23:41
2007.09.23
Великое Северное море.


3-1179738096
Робинзон
2007-05-21 13:01
2007.09.23
Экспорт данных БД в Word