Текущий архив: 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.47 MB
Время: 0.046 c