Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Files and strings [D7, XP]


Artem ©   (2007-12-27 17:06:00) 

Здравствуйте! Имеется задание :
2. Дан текстовый файл «File1.txt», содержащий сведения о сотрудниках учреждения, записанные по следующему образцу:
Фамилия Имя Отчество
Фамилия Имя Отчество
...
Записать эти сведения в текстовом файле «File2.txt», используя образец:
Фамилия И.О.
Фамилия И.О.
...

Мое решение :

 var
 f2,f1:textfile;
 i,j,x,k,b:integer;
 s:string;
 s1,s2: array[0..50] of string[50];

begin

assignfile(f1,'c:\File1.txt');
reset(f1);
j:=0;
while not EOF(f1) do
begin
read(f1,s);
s1[j]:=s;

j:=j+1;
readln(f1);
end;

for i:=0 to j do
write(s1[i]);

k:=1;
for i:=0 to j do
begin
for x:=0 to length(s[j]) do
      begin
if  s1[j][x]=' ' then
 k:=k+1
 else
 begin
if (k mod 3) =1 then
s2[j][x]:=s1[j][x];

if k mod 3 =2 then  begin
s2[j][x+1]:=s1[j][x];
s2[j][x+2]:='.';
end;

if k mod 3 =0 then begin
s2[j][x+1]:=s1[j][x];
s2[j][x+2]:='.';
end;
end;
end;
end;
for b:=0 to j do
for x:=1 to length(s1[j]) do
write(s2[j][x]);
               readln;

Код до создания второго файла!
Перескакивет кусок кода с for x:=0 to length(s[j]) do и до  for b:=0 to j do , в чем проблема , и можно ли вообще так осуществить эту задачу?


{RASkov}   (2007-12-27 17:30:00) [1]

> [3] Германн ©   (27.12.07 17:27)
> В ТП ее нет :)

Все просто.... просто GetShortName будет уже не одной строчкой а несколькими :)


Германн   (2007-12-27 17:27:00) [2]


> ExtractWord - uses RxStrUtils; которая в свою очередь находится
> в RxLib

В ТП ее нет :)


{RASkov}   (2007-12-27 17:23:00) [3]

> [0] Artem   (27.12.07 17:06)

Алгоритм:
Открыть файл1
Создать файл2
пока есть строки в файл1 делать:
 читаем следующую строку из файл1
 обрабатываем строку
 записываем полученную строку в файл2
закрыть файл1
закрыть файл2
енд.

Для обработки строки можно сделать функцию:

function GetShortName(const FIO: String): String;
begin
 Result:=ExtractWord(1, FIO, [ #32])+#32+ExtractWord(2, FIO, [ #32])[1]+'.'#32+ExtractWord(3, FIO, [ #32])[1]+'.';
end;

ExtractWord - uses RxStrUtils; которая в свою очередь находится в RxLib


Германн   (2007-12-27 17:12:00) [4]


> end;
> end;
> end;
> end;
>

Один из этих эндов лишний. Умел бы нормально форматировать код сам бы увидел.


Наверх

Титульная страница Поиск, карта сайта Написать письмо