Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2009, 09:09   #1
MixanMM
Форумчанин
 
Регистрация: 09.06.2009
Сообщений: 151
По умолчанию программа для сравнения строк ТМемо

ребят, извините что достал, но больше не могу, пытался сам, но не получаеться , помогите доделать программу, смысл такой, открывается файл, в нем куча текста, втексте присутствует такой символ после каждого заполненного поля в другой программе "|", после этого символа я разнес построчно весь текст, нужно сделать чтобы
1.открылся файл, в нем вытянуть номер заявки(2ая строка), дату(3я строка), счет(60ая строка), и еще кор счет(24ая строка)
2.в 60ой строке удалить пробелы и первые 20 символов сравнить со строкой номер 24.(сделал)
3.самое сложное. из компонента Тмемо1 загрузить в еомпонент ТМемо2 только 2,3,24,60 строк, кст пункт второй можно выполнить и тут, но проблема в том что в одном текстовом файле может быть как 2-3 платежки, так и штук 500, каждая платежка начинаеться с символов ZR, т.е получаеться после каждой ZR нужно 2,3,24,60 смотреть сравнивать, ну ит.д.(это я и самм сделаю) а вот как работать с файлом по признаку ZR ума не приложу, всем буду благодарен за подсказки/советы.
Листинг программы :
var
Form1: TForm1;
f1 : textFile;
date,no, s,c, str, stroka61: string;
i,z: integer;
implementation

{$R *.dfm}

procedure Tform1.doit();
Begin
Repeat
Begin
For z:=0 To Memo1.Lines.Count Do
If Pos('ZR',Memo1.Lines.Strings[z])>0 Then
Begin
Memo2.Lines.Add(Memo1.Lines.Strings[0]);
Memo2.Lines.Add(Memo1.Lines.Strings[1]);
{Memo2.Lines.Add(Memo1.Lines.String s[24]);
Memo2.Lines.Add(Memo1.Lines.Strings[59]);
{Memo1.Lines.Delete(z);}
End
Else
Memo1.Lines.Delete(20);
End;
Until Memo1.Lines.Count = 1 ;
stroka61:=memo2.lines[61];
s:=memo2.Lines[2];
{while pos(' ',s)>0 do
delete(s,pos(' ',s),1);
if s=stroka61 then showmessage('ñîâïàëà')
else ShowMessage ('Íåò')}
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if Open.Execute
then from.Text :=Open.FileName
else exit;
Memo1.lines.loadfromfile(from.text) ;
s:=Memo1.Text;
for i:=1 to length(s) do
begin
if s[i]='|' then c:=c+#13 else c:=c+s[i];
end;
if c<>'' then
begin
Memo1.Clear;
memo1.Lines.text:=c;
end;
memo1.Lines.Delete(0);
memo1.Lines.Delete(0);
memo1.Lines.Delete(0);
memo1.Lines.Delete(0);
memo1.Lines.Delete(0);
memo1.Lines.Delete(0);
memo1.Lines.Delete(0);
memo1.Lines.Delete(0);
memo1.Lines.Delete(0);
memo1.Lines.Delete(0);
memo1.Lines.Delete(0);
memo1.Lines.Delete(0);
memo1.Lines.Delete(0);
memo1.Lines.Delete(0);
memo1.Lines.Delete(0);

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
doit;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Memo2.clear;
Memo1.clear;
end;

end.
MixanMM вне форума Ответить с цитированием
Старый 30.06.2009, 11:56   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

выложите пример файла с несколькими платёжками (2-три будет достаточно).
(если информация конфиденциальная, то конкретные цифры можете заменить на случайные (например, все цифры замените на 1-нички).
Ещё раз поясните, что должно получиться в результате (вплоть до того, что нарисуйте результат руками в редакторе).
Все полученные файлы запакуйте и прикрепите архив сюда на форум.
Тогда намного легче будет Вам помочь.

Удачи.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.07.2009, 13:28   #3
MixanMM
Форумчанин
 
Регистрация: 09.06.2009
Сообщений: 151
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
выложите пример файла с несколькими платёжками (2-три будет достаточно).
(если информация конфиденциальная, то конкретные цифры можете заменить на случайные (например, все цифры замените на 1-нички).
Ещё раз поясните, что должно получиться в результате (вплоть до того, что нарисуйте результат руками в редакторе).
Все полученные файлы запакуйте и прикрепите архив сюда на форум.
Тогда намного легче будет Вам помочь.

Удачи.
вообщем вкладываю файлы платежек, и принт скрин в нем описано что-где, воопще задача такая, счета сравнить, если не совпадают, то вывести на экран номер платежки и дату, (я там выделил), платежки в одном файле начинаються с ZR символа, (выделил), аоопщем такая несложная(на первый взгяляд проблеммка) спасибо зарнее
Вложения
Тип файла: rar Рабочий стол.rar (92.6 Кб, 13 просмотров)
MixanMM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как из строки ТМемо удалить ненужные символы MixanMM Общие вопросы Delphi 3 10.06.2009 13:49
HELP!Си - программа для работы со строками + сумма строк в матрице! DUPLET Помощь студентам 1 20.12.2007 21:16
Нужна программа исключения списков строк AFOMENKO Фриланс 8 11.12.2007 00:22