Plz daite literaturu po Turbo Pascal (v inete)

shustya08

Nugno sostavit' programmu, a ya ego uge voobsche ne pomnu :(
Srazu ge vopros - Pascal umeet chitat' from text file? :o

mkrec

смотря что ты подразумеваешь под "читать фром техт файл". Функции read и write модуля system устроят?

0000

Кусок из FAQ по Дельфи - Паскалевский метод доступа
Для более тонких операций над текстовыми файлами прийдется освоить очень древний паскалевский способ.
Итак, для доступа к текстовым файлам используется переменная типа TextFile. До сих пор не совсем понимаю что это такое физически - что-то типа "внутреннего" паскалевского Handle на файл.
Итак чтобы ассоциировать файл на диске с переменной надо проделать следующие опрерации:
1) Определяем файловую переменную:
var f:TextFile;
2) Ассоциируем ее:
AssignFile(F, 'c:\MyFile.txt');
3) Теперь надо этот файл открыть, есть 3 варианта:
- файла нет или он должен быть перезаписан, открытие для записи:
Rewrite(f)
- файл есть и его надо открыть для чтения (с первой строки)
Reset(f)
- файл есть и его надо открыть для дописования строк в конец
Append(f)
Как видите не хватает очень полезных функций таких как открытия файла для чтения с произвольной строки и для записи в файл произвольной строки. Но надо учесть, что так как длины строк разные, не существует никакого способа узнать физическое место начала например 1000 строки, не прочитав всю тысячу строк. Для записи ситуация еще сложнее - вставить строку означает перезаписать всю информацию после этой строки заново. Таким образом варианты только следующие:
- Перезаписать весть файл
- Читать с первой строки
- Дописать что-то в конец
- Читать и писать файл целиком (см. выше работу через TStrings)
В конце работы открытый файл нужно закрыть:
CloseFile(f);
Теперь пусть у нас есть строковая переменная s для чтения строки из файла
Чтение предварительно открытого файла:
ReadLn(f, s) - будет прочитанна текущая строка и позиция чтения переведена на следующую позицию.
А как прочитать весь файл?

While not eof(f) do
begin
ReadLn(f, s);
{здесь делаем что-то с прочитанной строкой}
end;

mkrec

с файлами еще можно работать как не с текстовыми, а обычными файлами. Тогда можно пользоваться функциями seek и записи/считывания нескольких рекордов (байтов, например). Не помню, как эти функции называются. Комбинирование работы с файлами как с текстовыми и как с нетекстовыми вполне покрывает все разумные нужды.

shustya08

izvinite za tupoi vopros, no Delphi - eto vrode kak rodstvennaya sreda programmirovaniya po otnosheniu k Pascal? Namnogo li otlichautsya eti dve sredi? Drugimi slovami, pridetsya li polnost'u pereuchivatsya cheloveku, znauschemu Pascal, chtobi programmirovat' v Delphi?
Potomu kak programmu nado napisat' v samoe bligaishee vremya, na izuchenie chego-to kardinalno novogo, tipa C++, vremeni net :(
UPD A ishodnik Borland Pascal - eto shareware ili ego mogno gde-to skachat'?

0000

Delphi вырос из Паскаля. Такой доступ к файлам был раньше в паскале, в Delphi его оставили для обратной совместимости.
Паскаль вроде можно нахаляву скачать - поиск по Free Paskal должен наверно что то дать (не уверен, что Паскаль так пишется :grin:)

shustya08

не уверен, что Паскаль так пишется :grin:
a v moem poste posmotret' ne sud'ba? :grin:
Prosto obichnii variant Pascalya gluchit s superpuperprotzami (dage s Athlon XP2000+, chto tam govorit' o Core2 moget kto-to znaet gde dostat' otkompillirovannuu pod sovremennie sistemi sredu.

Andbar

free pascal поищи, тебе уже сказали.
turbo pascal сделан под дос, процы тут почти не при чём

mkrec

впрочем, некоторые несложные и даже сложные вещи, откомпилированные в TP7.0 и даже в TP5.5, успешно работают под виндой.

SPARTAK3959

free pascal поищи, тебе уже сказали.
turbo pascal сделан под дос, процы тут почти не при чём
Очень даже причем - стандартный турбопаскаль падает при попытке определения скорости процессора (это нужно для нормировки времени в функции sleep). Против этого есть сторонний фикс, но я не знаю где его скачать.

Dimon89

Против этого есть сторонний фикс, но я не знаю где его скачать.
Если ты про E200Patch, то он есть у меня.

Dimon89

А чем Дельфи не устраивает? Отличий минимум. Работа с текстовыми файлами в общем случае выглядит так:

var
f: texile;
s: string;
begin
AssignFile(f, "a.txt");
Reset(f);
while not EOF(f) do
begin
readln(f, s);
{тут обрабатываешь строку s}
end;
CloseFile(f);
end;

shustya08

Всем устраивает, я собственно спрашивал, насколько сильна ломка при переходе на него с паскаля. A ты можешь выложить исходник куда-нибудь в пределах видимости твоего гейта?

apl13

Против этого есть сторонний фикс, но я не знаю где его скачать.
Ищется быстро.

Dimon89

Исходник кого? Дельфи на мне лежат.
А ломки (у меня, например вообще не было, благо хелп удобный.
Оставить комментарий
Имя или ник:
Комментарий: