Помогите с Delphi 7

P.s. Вот тут подумал - в принципе мне достаточно чтобы конечный файл был в таком виде. И даже так лучше, поскольку меня не очень интересуют даты событий, а сам результат. Как мне тогда составить маску или может поменять вывод в memo, чтобы получилось вот так :

Мне звук в принципе не нужен, но спасибо.

Для получения такого списка нужно изменить саму Маску поиска.
Код:
Reg.Pattern:='bla-bla-bla';

Должно работать
Заменить:
Код:
Reg.Pattern := '(\d{1,2}\.\d{1,2}\.\d{1,2}\s.*\s\d{1,3}:\d{1,3})\s.\d{1,3}';

на:
Код:
Reg.Pattern := '\d{1,2}\.\d{1,2}\.\d{1,2}\s(.*\s\d{1,3}:\d{1,3})\s.\d{1,3}';

Все что нужно было, передвинуть "(" :)
 
А как вот такой вывод сделать (удалить тире и двоеточие)? они в дальнейшем не нужны:
Филадельфия Нью-Йорк 100 98
Нью-Йорк Даллас 97 113
Нью-Йорк Детройт 124 106
Атланта Нью-Йорк 111 102
Нью-Йорк Майами 93 88
Филадельфия Нью-Йорк 100 98
Нью-Джерси Филадельфия 92 106
Филадельфия Денвер 110 99
Филадельфия Мемфис 94 99
Торонто Филадельфия 94 107
Филадельфия Нью-Йорк 100 98
Нью-Йорк Филадельфия 96 106
Филадельфия Нью-Йорк 118 91
Нью-Йорк Филадельфия 92 88
Филадельфия Нью-Йорк 84 94
Филадельфия Нью-Йорк 92 93
Нью-Йорк Филадельфия 127 141
Нью-Йорк Филадельфия 85 93
Нью-Йорк Филадельфия 103 108
Филадельфия Нью-Йорк 116 110
В следующем этапе нужно будет добавить эти строки в массив (4 столбца и 15 строк соответственно) для произведения дальнейших вычислений. Только вот не знаю возможно ли в делфи создать массив где одновременно и слова и цифры. В принципе думаю возможно, но надо будет перевести всё в один тип, что-то типа string , а потом при расчётах опять выводить из string в числовое значение. Ну да ладно с этим попробую сам разобраться , если не буду знать как то спрошу здесь :)
Добавлено через 54 минуты
P.s. Немного подумал: тут скорее всего нужно воспользоваться поиском и заменой текста. То есть
Код:
" - "
нужно заменить просто на пробел
Код:
" "
, а
Код:
":"
на
Код:
" "
. Ушел искать как это реализоват на делфи :yahoo:
 
А как вот такой вывод сделать (удалить тире и двоеточие)? они в дальнейшем не нужны:
В следующем этапе нужно будет добавить эти строки в массив (4 столбца и 15 строк соответственно) для произведения дальнейших вычислений. Только вот не знаю возможно ли в делфи создать массив где одновременно и слова и цифры. В принципе думаю возможно, но надо будет перевести всё в один тип, что-то типа string , а потом при расчётах опять выводить из string в числовое значение. Ну да ладно с этим попробую сам разобраться , если не буду знать как то спрошу здесь :)
Добавлено через 54 минуты
P.s. Немного подумал: тут скорее всего нужно воспользоваться поиском и заменой текста. То есть
Код:
" - "
нужно заменить просто на пробел
Код:
" "
, а
Код:
":"
на
Код:
" "
. Ушел искать как это реализоват на делфи :yahoo:

Добавь после
Код:
...
  end;
  Reg.Free;
  Data.Free;

это

Код:
 Data := TStringList.Create;
  Data.Text := StringReplace(Memo1.Text, ' -', '',
    [rfReplaceAll, rfIgnoreCase]);
  Memo1.Text := StringReplace(Data.Text, ':', ' ',
    [rfReplaceAll, rfIgnoreCase]);
  Data.Free;

Получишь вот такое:
Код:
Шарлотт Даллас	92 101
Шарлотт Майами	97 109
Детройт Шарлотт	87 97
Юта Шарлотт	83 78
Клипперс Шарлотт	103 88
Бостон Орландо	91 80
Бостон Даллас	97 101
Сакраменто Бостон	90 95
Лейкерс Бостон	96 109
Финикс Бостон	88 71

Я ток не знаю как убрать большие пробелы
 
Я ток не знаю как убрать большие пробелы

Да в принципе и так покатит. Теперь нужно этот текст засунуть в массив (4 столбца и 20 строк соответственно). Хотя если в свойствах memo есть возможность считывать индекс того или другого слова , то массив не нужен. Под индексом я имею ввиду например возможность считать программой, что комманда Даллас в тексте находится в 1-й строке 2-й позиции. Иду читать есть ли такие свойства в мемо .. :) , но подозреваю, что скорее всего нету и придется организовывать массив
 
Да в принципе и так покатит. Теперь нужно этот текст засунуть в массив (4 столбца и 20 строк соответственно). Хотя если в свойствах memo есть возможность считывать индекс того или другого слова , то массив не нужен. Под индексом я имею ввиду например возможность считать программой, что комманда Даллас в тексте находится в 1-й строке 2-й позиции. Иду читать есть ли такие свойства в мемо .. :) , но подозреваю, что скорее всего нету и придется организовывать массив

С этим помочь не могу :nezn:
 
Понятно. А можно как-нибудь прочитать теперь из memo все данные и присвоить их какому-нибудь значению, чтобы потом работать с ним? Вот например чтобы было так:

к(1)=Филадельфия
к(2)=Нью-Йорк
к(3)=100
к(4)=98
к(5)=Нью-Йорк..... к(80)=110.

Догадываюсь, что можно сначала записать из memo в файл, а потом прочитать и присвоить их, но это лишняя операция и соответсвенно увеличение кода, что не совсем разумно, хотя, конечно, если другого выхода не будет, то придется делать так..
 
Понятно. А можно как-нибудь прочитать теперь из memo все данные и присвоить их какому-нибудь значению, чтобы потом работать с ним? Вот например чтобы было так:
к(1)=Филадельфия
к(2)=Нью-Йорк
к(3)=100
к(4)=98
к(5)=Нью-Йорк..... к(80)=110.
Догадываюсь, что можно сначала записать из memo в файл, а потом прочитать и присвоить их, но это лишняя операция и соответсвенно увеличение кода, что не совсем разумно, хотя, конечно, если другого выхода не будет, то придется делать так..

Я не знаю как реализовать такое. Я со строками мало работал. И вобще я в Делфи новичек :)

Знаю только как можно обработать построчно и разделить каждую строку на куски. Только между словами должен быть разделитель.
например такая строка (| разделитель или другой знак/символ и т.д:(
Филадельфия|Нью-Йорк|100|98

Так я могу взять любую часть отдельно и делать с ней что нужно.
Так в цикле можно обработать и остальные строки. Но вроде это не то что тебе нужно
 
Ну, на счёт "новичек в делфи" по-моему ты поспешил с высказыванием.
А теперь по делу: знаю что есть языки, которые в качестве разделителя могуть принять и простой пробел. Думал что и в делфи так можно, но если нельзя это конечно плохо. Придется тогда что-нибудь другое придумывать :(

Ок, я опять ушел читать хелп по делфи )) ещё немного и глядишь буду работать на майкрософт, если такими темпами буду Делфи изучать :D
 
Ну, на счёт "новичек в делфи" по-моему ты поспешил с высказыванием.
А теперь по делу: знаю что есть языки, которые в качестве разделителя могуть принять и простой пробел. Думал что и в делфи так можно, но если нельзя это конечно плохо. Придется тогда что-нибудь другое придумывать :(
Ок, я опять ушел читать хелп по делфи )) ещё немного и глядишь буду работать на майкрософт, если такими темпами буду Делфи изучать :D

:D


Набросал пример работы с разделителем:
Код:
var
  ts: TStringList;
begin
  ts := TStringList.Create;
  ts.Delimiter := ' ';
  ts.DelimitedText := 'Шарлотт Даллас 92 101';
    Memo1.Lines.Add(ts[0]);
    Memo1.Lines.Add(ts[1]);
    Memo1.Lines.Add(ts[2]);
    Memo1.Lines.Add(ts[3]);

  ts.Free;

В результате в Мемо получим
Код:
Шарлотт
Даллас
92
101

Кстати, я так и не могу догнать что тебе нужно сделать со списком данных
Код:
Шарлотт Даллас	92 101
Шарлотт Майами	97 109
Детройт Шарлотт	87 97
Юта Шарлотт	83 78
Клипперс Шарлотт	103 88
Бостон Орландо	91 80
Бостон Даллас	97 101
Сакраменто Бостон	90 95
Лейкерс Бостон	96 109
Финикс Бостон	88 71
...

Объясни :confused:
 
Назад
Сверху