IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> 1 программа по работе с текстовыми файлами, Программа по работе с файлами
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Программа считывает список фамилий, имен и номеров зачеток с текстового файла и по выбору пользователя(по имени, фамилии или номеру зачетки) сортирует их по алфавиту и сохраняет в новый текстовый файл. Очень надо до сегодняшнего вечера до 23:00. Помогите!!!! unsure.gif rolleyes.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Разбирайся ...

uses crt;

const
max_len = 100;

type

TStudent = record
name: String;
book: LongInt;
end;

TDataBase = array [1..max_len] of TStudent;

TFile = Text;

function ReadData(fName: String; var db: TDataBase; var dbSize: Integer): Boolean;
var
temp: String;
f: TFile;
value, e: LongInt;
begin


dbSize := 0;

assign(f, fName);

{$i-}
reset(f);
{$i+}

if IOResult <> 0 then ReadData := false else begin

ReadData := true;

while not(eof(f)) do begin

readln(f, temp);

inc(dbSize);

with db[dbSize] do begin
name := Copy(temp, 1, pos(' ', temp) - 1);
Val(Copy(temp, pos(' ', temp) + 1, 255), value, e);
if e = 0 then
book := value;
end;

end;

close(f);

end;
end;

procedure SortBy(var db: TDataBase; dbSize: Integer; byName: Boolean; desc: Boolean);
var
i, j: Integer;
temp: TStudent;

begin

for i := dbSize downto 2 do

for j := 1 to i - 1 do

case byName of

true: begin

if ((db[j].name <= db[j + 1].name) = desc) then begin
temp := db[j];
db[j] := db[j + 1];
db[j + 1] := temp;
end;

end;

false: begin

if ((db[j].book <= db[j + 1].book) = desc) then begin
temp := db[j];
db[j] := db[j + 1];
db[j + 1] := temp;
end;

end;
end;
end;

procedure WriteToFile(fName: String; db: TDataBase; dbSize: Integer);
var
i: Integer;
f: TFile;
begin
assign(f, fName);
rewrite(f);
for i := 1 to dbSize do
writeln(f, db[i].name, ' ', db[i].book);
close(f);
end;

var
db: TDataBase;
dbSize: Integer;
choice: Char;

begin
clrscr;

if not(ReadData('c:\studentsIn.txt', db, dbSize)) then begin
writeln('Can''t open file');
halt(1);
end;

writeln('Sort By : ');
writeln('1 - ByName');
writeln('2 - ByBookNumber');
write('Your choice ->');

readln(choice);

case choice of
'1': SortBy(db, dbSize, true, false);
'2': SortBy(db, dbSize, false, false);
end;

WriteToFile('c:\studentsOut.txt', db, dbSize);

writeln('Done');

readln;
end.


Для более точной сортировки по фамилии пользуйся поиском по форуму ...

ps Пример входного файла прикрепляю.


Прикрепленные файлы
Прикрепленный файл  studentsIn.txt ( 103 байт ) Кол-во скачиваний: 297


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Ты сам эту прогу проверял? Мне она выдает ошибку вида: Error 202 Stack Overflow Error. Че это ты не в курсе? mega_chok.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Saver   1 программа по работе с текстовыми файлами   5.11.2006 22:09
klem4   Что уже готово ? Что не получается ? FAQ : Файлы …   5.11.2006 22:42
Saver   Программа считывает список фамилий, имен и номеро…   6.11.2006 0:01
мисс_граффити   а ты ее пробовал написать? если да - выкладывай, ч…   6.11.2006 0:09
Saver   Сам пробовал. Но мало что получилось. Попробуй ты.…   6.11.2006 0:41
klem4   Помочь и сделать полностью _за_тебя_ это разные ве…   6.11.2006 0:09
Saver   Помочь и сделать полностью _за_тебя_ это разные в…   6.11.2006 0:22
мисс_граффити   даже пробовать не буду, пока ты не выложишь то, чт…   6.11.2006 0:44
klem4   Разбирайся ... uses crt; const max_len = 100; …   6.11.2006 1:03
Saver   Ты сам эту прогу проверял? Мне она выдает ошибку в…   6.11.2006 2:48
volvo   klem4, еще одно использование тега PASCОDE закончи…   6.11.2006 1:12
klem4   :ohmy: Извини, не читал :mega_chok: исправил на…   6.11.2006 1:14
klem4   Интересно, в каком месте ? При каких входных данны…   6.11.2006 14:10
Saver   сначала просит переделать переменную e в integer, …   6.11.2006 23:40
volvo   klem4, проверять программы надо и на Turbo Pascal-…   7.11.2006 18:44


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 8.09.2025 20:20
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name