Главная страница
    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.47 MB
Время: 0.046 c
1-1184231813
Phoenix
2007-07-12 13:16
2007.09.23
rtf файлы и колонтитулы.


15-1187867666
Help_
2007-08-23 15:14
2007.09.23
DataSet и потоки.


2-1187166562
DevilDevil
2007-08-15 12:29
2007.09.23
лимит стека


15-1187805274
random(255)
2007-08-22 21:54
2007.09.23
Дискретная математика (научите лентяя=)


11-1171710316
homm
2007-02-17 14:05
2007.09.23
Форт-подобная машина Владимира Кладова





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский