Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 17.12.2008, 18:35   #1 (permalink)
Катуха
Member
 
Регистрация: 17.12.2008
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Описание функции SplitIntFile

Помогите написать задачку, пожалуйста.(на паскале)
Описать процедуру SplitIntFile (Name0,k,Name1,Name2), копируюшую первые k(>=0) элементов существующего файла целых чисел с именем Name0 в файл Name1, а остальные элементы - в файл Name2 (прежнее содержимое результирующих файлов стирается). Один из результирующих файлов может оказаться пустым. Применить эту процедуру к файлу Name0, используя значения Name1, Name2 и k.
Катуха вне форума   Ответить с цитированием

Старый 17.12.2008, 18:35
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Ранее люди создавали темы, которые имеют сходства с вашей

Дайте, пожалуйста, описание внутреннего устройства SATA HDD для ноутбука
Описание программы, Delphi
Описание платы

Старый 18.12.2008, 15:40   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Вот. Если я правильно понял.

Program SPLIT;

VAR

k,j:INTEGER;
fxx:TEXT;

PROCEDURE SplitIntFile(Nm0, Nm1, Nm2:STRING; KS:INTEGER);
VAR
i,x:Integer;
EoF_Nm0:BOOLEAN;
f0,f1,f2:TEXT;

BEGIN

Assign(f0, Nm0);
ReSet(f0);
Assign(f1, Nm1);
ReWrite(f1);
Assign(f2, Nm2);
ReWrite(f2);

i:=1;
WHILE (NOT EoF(f0)) AND (i<=k) DO
BEGIN
Read(f0, x);
Write(f1,x:10);
EoF_Nm0:=EoF(f0);
INC(i)
END;

Close(f1);

IF (NOT EoF_Nm0) THEN
REPEAT
Read(f0,x);
Write(f2,x:10);
UNTIL EoF(f0);

Close(f0);
Close(f2);

END; {SplitIntFile}

BEGIN

{Тестовое заполнение файла с именем Name0}
Assign(fxx, 'D:\Name0');
{D:\ - это место размещения файлов; может быть изменено}
ReWrite(fxx);
FOR j:=1 TO 100 DO Write(fxx, j:10);
Close(fxx);

Write('Введите k '); ReadLn(k);

SplitIntFile('D:\Name0', 'D:\Name1', 'D:\Name2', k);

END.
Vladimir_S вне форума   Ответить с цитированием
Старый 19.12.2008, 21:00   #3 (permalink)
Катуха
Member
 
Регистрация: 17.12.2008
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо преогромное))))))Очень выручил))
Катуха вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 04:35.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.