Главная страница
    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.07 c
2-1187944455
Nikfel
2007-08-24 12:34
2007.09.23
Перетащить файл в свою программу


2-1187864039
@!!ex
2007-08-23 14:13
2007.09.23
Быстрая замена части строки


15-1187879485
ArtemESC
2007-08-23 18:31
2007.09.23
Прогресс


15-1187157030
Alien1769
2007-08-15 09:50
2007.09.23
КМП-2007


1-1184553942
aclub_it
2007-07-16 06:45
2007.09.23
Delphi &amp; Exel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский