Проблема с задачей с текстом

Ответить
309007
Сообщения: 1
Зарегистрирован: 23 окт 2013, 17:25

есть примерно такой тескт

56|02.10.2013|01004794|382.00|0|Тавбулатова Алият Хамзатбековна|
01|02.10.2013|00019876|822.57|0|АГАЛАРОВА.А.С.|
63|02.10.2013|03000326|1970.00|0|Хизриев Рабадан Ахмедович|
51|02.10.2013|01009755|470.00|0|Адуев Абдулмукмин Магомедович|
62|02.10.2013|00042257|10000.00|0|Маремов Адмир Заурбиевич|
30|02.10.2013|00000565|500.00|0|Кимпаев Абдурагим Махачович|
76|02.10.2013|00010464|166.00|560|Васильченко Сергей Григорьевич|
60|02.10.2013|01000832|650.00|0|Омашева Кумсият Ахмедовна|
16|02.10.2013|08000072|2500.00|0|Динакаев Янибек Саидович|
03|02.10.2013|09000547|200.00|0|Мусаева Райганат Акаевна|
65|02.10.2013|00010354|500.00|29900|Филатова Галина Ивановна|
51|02.10.2013|01010010|3072.00|0|Алиева Патимат Набиевна|
01|02.10.2013|00098371|3067.64|0|АЛИБЕКОВ А.А.|
23|02.10.2013|02000735|94.10|11041|Шамхалов Гасан Шамхалович|
...

нужно сделать из этого тесктого файла 111.txt шесть новых, в которых будут строки начинающиеся на 60(отдельно файл), 61, 62-66(по одному файлу), и чтобы названием нового файла было число(день формирования файла) в формате 60-дд-мм-гггг(если начинаются на '60'),
примерный текст моей проги

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtDlgs, StdCtrls, Buttons;

type
TForm1 = class(TForm)
OpenDialog: TOpenDialog;
BitBtn1: TBitBtn;
Label1: TLabel;
Memo1: TMemo;
Button1: TButton;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
openDialog : TOpenDialog; // Переменная OpenDialog
Fname:string;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
// Создание объекта OpenDialog - назначение на нашу переменную OpenDialog
openDialog := TOpenDialog.Create(self);

// Установка начального каталога, чтобы сделать его текущим
openDialog.InitialDir := GetCurrentDir;

// Только разрешенные существующие файлы могут быть выбраны
openDialog.Options := [ofFileMustExist];

// Разрешено выбрать только .dpr и .pas файлы
openDialog.Filter :=
'Текстовые файлы|*.txt|'+ 'Файлы Паскаля|*.pas';

// Выбор файлов Паскаля как стартовый тип фильтра
openDialog.FilterIndex := 1;

// Показ диалог открытия файла
if openDialog.Execute
then
begin
ShowMessage('File : '+openDialog.FileName);
Label1.Caption:= openDialog.FileName;
end
else ShowMessage('Открытие файла остановлено');
// Освобождение диалога
openDialog.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
myFile, myFile2 : TextFile;
letter : char;
text,text2 : string;
i,j: Integer;
begin
// Попытка открыть файл Test.txt для записи в него
i:=0;
j:=0;
AssignFile(myFile, '111.txt');
AssignFile(myFile2, '222.txt');

ReWrite(myFile2);

// Запись строки текста в файл
// WriteLn(myFile, 'Hello');
// WriteLn(myFile, 'To you');

// Закрытие файла
//CloseFile(myFile);

// Переоткрытие файла только для чтения
//FileMode := fmOpenRead;
Reset(myFile);
Memo1.Clear;
// Показ содержимого файла
while not Eof(myFile) do
begin
// Процесс считывание одной строки
while not Eoln(myFile) do
begin
Read(myFile, letter); // Чтение и отображение одного символа
Text:=text+letter;
end;
text2:=Text[1]+Text[2];
if (Text2='60')
then
begin
j:=j+1;

Memo1.Lines.Add(text);
WriteLN(myFile2, text);
ReadLn(myFile, text);
end

else
begin
i:=i+1;
ReadLn(myFile, text);
end;
end;

// Закрываем файл в последний раз
Label3.Caption:=IntToStr(i);
Label5.Caption:=IntToStr(j);
CloseFile(myFile);
CloseFile(myFile2);

end;

end.

она работает, но почему-то пропускает или наоборот добавляет одну строку, в первом случае нужную, во втором не нужную
пробовал написать с TStringList , но не получается. прошу помощи
Изображение
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Прочитал текст. Ничего не взорвалось и не загорелось. В чем проблема?
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить