Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.09.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.045 c
15-1187846202
Ega23
2007-08-23 09:16
2007.09.23
Для тех, кто в курсе


2-1188223755
denis24
2007-08-27 18:09
2007.09.23
Подключение к dbf через ADO


1-1184321703
=BuckLr=
2007-07-13 14:15
2007.09.23
Определение граббинга и грабберов экрана


3-1179820144
Layner
2007-05-22 11:49
2007.09.23
Ввод в DBGrid дробной части - запятая всегда печаталась


2-1188279351
AllDer
2007-08-28 09:35
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский