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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2009, 06:28   #1
Alexeyss
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 10
По умолчанию Помогите разобраться со строками

Здравствуйте.

Столкнулся с проблемой.

Открываю файл txt в memo, далее мне необходимо найти определенный символ, например '|' и поставить ровно под ним такой же символ, Lines +1 и так до конца текста.

Помогите пожалуйста разобраться.
Alexeyss вне форума Ответить с цитированием
Старый 03.06.2009, 08:18   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Проблема большинства таких вопросов в их полной вате. Скажите четко что Вам нужно? Хорошо, у memo есть memo.Lines.Text - считайте что memo это не строки, а одна большая строка. Вот и ищите в ней свой символ и вставляйте в нее все что Вам захочется.
Но у этого подход есть маленький минус. При вставке в текст строка полностью копируется. И если в memo будет много текста скорость работы может упасть значительно.
Кроме того, такой подход не допускает использования некоторых знаков, в общем я Вас предупредил.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 03.06.2009, 08:47   #3
Alexeyss
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Проблема большинства таких вопросов в их полной вате. Скажите четко что Вам нужно?
Загружается файл

Табурет | Стол | Вата | Фамилия | Имя | ..................................
1 2 3 Иванов Николай
2 3 4 Петров Евгений
................................... ................................... ...........
................................... ................................... ...........
................................... ................................... ...........

Вот и нужно этот символ '|' продолжить вниз на той же позиции.
Так же отмечу, что шапка документа может меняться, в том плане, что перед
Табурет | Стол | Вата | Фамилия | Имя |
Может идти текст, который зависит от файла, именно поэтому мне не подходит способ:

Код:
Var
 f1,f2:Textfile;
 i,ij,j, len:integer;
begin
    AdvMemo1.Clear;
    if OpenDialog1.Execute then begin
  AssignFile(f1,opendialog1.FileName);

   reset(f1);   j:=1;
   for I := 1 to 30 do
     m[i]:=0 ;

   for i := 1 to 14 do
   begin
    Readln(f1,s); len:=Length(s);  s1:=s;
     for Ij := 1 to len  do
        if  s1[ij] = '|' then
            s1[ij]:=';';
            advMemo1.Lines.Add(s1);
   end;
      for I := 1 to len +1 do
        if  s[i] = '|' then
          begin

            m[j]:=i;
             j:=j+1;
         end;
while not  Eof(f1) do
  begin
     Readln(f1,s);
       len:=Length(s);
       for I := 1 to len  do
          for j := 1 to 30 do
             if i = m[j] then
                  s[i]:=';';
                 s:=s+';';
       advMemo1.Lines.Add(s);

Последний раз редактировалось Stilet; 03.06.2009 в 10:29.
Alexeyss вне форума Ответить с цитированием
Старый 03.06.2009, 09:59   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Тебе преподу показывать или для собственных нужд? Если для собственных, у меня имеется библиотека, которая рассматривает строки как массив последовательностей символов, ограниченных разделительным символом. В нашем случае первую строку можно как я понимаю откидывать, здесь у нас просто образец символа, который нужно впихивать в остальные. Тогда перед нами массивы последовательностей символов, где в качестве разделителя выступает пробел. Тогда Вам нужно будет осуществлять всего лишь вставку элементов в такой массив.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 03.06.2009, 10:08   #5
Alexeyss
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Тебе преподу показывать или для собственных нужд?
От преподов я давно вырос
Для работы программа, а библиотеки буду оч. признателен.
Alexeyss вне форума Ответить с цитированием
Старый 03.06.2009, 10:18   #6
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Там находится моя разработка, в ней можно использовать Masiv и Stroki - набор функций для представления строки как массива, множества, арифметика длинных чисел. Open Source, можете использовать как заблагорассудится, но не имеете права ограничивать распространение данного кода.
Нумерация массивов начинается от единицы. В строке всегда есть хоть один элемент, даже если она пустая.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите со строками (Си) Данилыч Д. Помощь студентам 1 15.01.2009 17:05
помогите со строками SYL@R Помощь студентам 11 08.07.2008 11:11
помогите со строками ShenDy Общие вопросы C/C++ 2 26.03.2008 09:13
помогите со строками разобраться евгения, Помощь студентам 2 28.05.2007 21:28
помогите со строками разобраться pirozho4ek Помощь студентам 2 25.05.2007 10:29