Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 17.11.2014
Сообщений: 11
1

Программа по замене одно-трех значных чисел в тексте

18.11.2014, 17:08. Показов 672. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Суть заключается в следующем: есть несколько громадных текстов, внутри которых разбросаны предпосылки на источники по типу [N1; N2; N3, c.34-87], где N - номер источника от 1 до 500+ . Нужно создать программу которая ищет такие числа (сразу после скобки или после ";" с пробелом), и сравнивает их с заданным числом M, и в зависимости от режима предпринимает следующие:
1)Если текущее найденное число N больше введенного числа М, то в число N увеличивается на единицу.
2)Если найденное число N равно введенному числу М, то число N заменяется на русскую букву «Ы»;
Если найденное число N больше введенного числа M, то число N уменьшается на единицу.
Желательно чтоб открывался текстовый файл.
Прога на первый взгляд не очень сложная, но сам я изучаю Делфи чуть больше двух месяцев, и тут просто пасую
Буду рад любой помощи!
З.Ы. Если у кого есть похожие проги или примеры на Си или Паскале, кидайте - буду рад))

Добавлено через 15 часов 37 минут
Как привязать ввод-вывод к полям-кнопкам и "отсеять" ненужные символы знаю сам, но возникают проблемы когда нужно считать с текста несколько-значное число и проведя операции ввести его обратно.
К стати, можно и не считывать из файла а просто скопировать текст в поле (например Memo), но не думаю что это сильно упростит задачу
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2014, 17:08
Ответы с готовыми решениями:

Определить, сколько в этой последовательности одно-, двух-, трех-, четырех- значных элементов
Дана числовая последовательность, состоящая из целых чисел, не превышающих по модулю число 9999....

Вывод на экран всех трех значных чисел кратных 9
Составить программу вывода на экран всех трех значных чисел кратных 9

Определить, есть ли среди трех заданных чисел хотя бы одно четное (хотя бы одно нечетное)
Даны три целых числа A, B, C. Определить, есть ли среди них хотя бы одно четное и хотя бы одно...

Определить, есть ли среди трех чисел хотя бы одно чётное и хотя бы одно нечётное
Чётные и нечётные числа Дано три целых числа a, b, c. Определить, есть ли среди них хотя бы...

5
1 / 1 / 1
Регистрация: 17.11.2014
Сообщений: 11
22.11.2014, 23:34  [ТС] 2
Не ну я понимаю что такую прогу никто за бесплатно с нуля писать не будет, но чтобы ни единого слова, за 80 просмотров, на киберфоруме программистов.. я в этом сайте глубоко разочарован.

Ладно я знаю как считать/отсеять/записать обратно, но может все таки кто-то подскажет что делать с неоднозначными числами?
Ведь если трехзначное число М=100 уменьшить а единицу, оно уже не будет будет трехзначным, и кол-во элементов в строчной переменной изменится.И как это учесть в основной проге я не знаю.
Может уже кто сталкивался с такой проблемой?
0
843 / 738 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
23.11.2014, 00:16 3
Alexander_UA,
Реальный пример текста покажи и покажи что из него должно быть на выходе после обработки.
0
пофигист широкого профиля
4733 / 3167 / 859
Регистрация: 15.07.2013
Сообщений: 18,255
23.11.2014, 02:13 4
Цитата Сообщение от Alexander_UA Посмотреть сообщение
но может все таки кто-то подскажет что делать с неоднозначными числами?
После того как будет сформулирован термин "неоднозначное число", милости просим задавать вопросы по нему.

P.S. И оставь свои "Ладно я знаю как".
0
1 / 1 / 1
Регистрация: 17.11.2014
Сообщений: 11
23.11.2014, 11:44  [ТС] 5
NIKOLAYY, Есть текст, в котором встречаются предпосылки на источники [3; 4; 5, c.34-87], где 3,4,5 - номера источников которые нужно сравнить с введенным числом и изменить (-1). То есть, запускаем программу вводим число 6 и текст изменяется на [2; 3; 4, c.34-87].
Думаю проще всего чтоб программа считывала и записывала с тхт файла текст в поле Мемо, пока не обнаружит символ "[", далее делаем цикл с проверкой/редактированием/записью символов между [ ] и продолжаем переписывать ненужный текст в Мемо после символа "]". Вот только как это лучше реализовать?
0
1 / 1 / 1
Регистрация: 17.11.2014
Сообщений: 11
26.11.2014, 15:24  [ТС] 6
Спасибо всем кто.. ах да, мне тут никто толком и не помог
Хвала кибербогам разобрался, может у кого будет еще похожая задача - вот часть исходников:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Memo2: TMemo;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
{
 
Программа выполняет в тексте поиск натуральных чисел по таким критериям:
1. [N (число сразу без пробела после квадратной скобки);
2. [ N (число после одного пробела после квадратной скобки);
3. ; N (число через пробел после точки с запятой).
4. ;N (число сразу после точки с запятой).
Если одно из вышеприведенных условий совпадает,
мы сравниваем найденное число N с числом M введенным с клавиатуры и
выполняем следующие варианты программы (их можно выбирать):
1) Если текущее найденное число N больше введенного числа М,
то в число N увеличивается на единицу.
2) Если найденное число N равно введенному числу М, то число N заменяется на
русскую букву «Ы». Если найденное число N больше введенного числа M,
то число N уменьшается на единицу.
 
}
 
procedure TForm1.Button1Click(Sender: TObject);
var
 s, s1, v: string;
 i, i1, M, N: integer;
 flg, fgl: boolean;
begin
 s:= Memo1.Text;
 M:= StrToInt(Edit1.Text);
 Memo2.Clear;
 s1:= '';
 flg:= false;
 i1:= 0;
 
 for i := 1 to Length(s) do
  begin
   s1:= s1 + s[i];
   if (s[i] = '[') or (s[i] = ';') then flg:= true;
   if flg then
    begin
     fgl := s[i+1] = ' ';
     if s[i] in ['0'..'9'] then inc(i1);
     if (not (s[i+1] in ['0'..'9'])) and (not fgl) then
      begin
       v:= Copy(s1, (Length(s1)-i1)+1, Length(s1));
       flg:= false;
       if v <> '' then
         begin
          N:= StrToInt(v);
          if N > M then v:= IntToStr(N+1);
          if N = M then v:= 'Ы';
          if N < M then v:= IntToStr(N-1);
          Delete(s1, (Length(s1)-i1)+1, Length(s1));
          s1:= s1 + v;
          i1:= 0;
         end;
      end;
    end;
  end;
 Memo2.Text:= s1;
end;
 
end.
0
26.11.2014, 15:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.11.2014, 15:24
Помогаю со студенческими работами здесь

Опредилить количество трех значных чисел в строке, содержащие группы цифр, разделеных пробелом
1)Напишите программу формирования и вывода массива размеров 6 х 3 , каждые три последовательных...

Программа генерации 5-значных чисел
программа генерирует 5-значные числа. если числа не подходят, то он должен заново сгенерировать...

Программа для сравнения двух n-значных чисел (где n>20);
1. Программа для сравнения двух n-значных чисел (где n&gt;20);

Проверить, является ли хотя бы одно из трех чисел положительным
Даны три целых числа: A, B, C. Проверить истинность высказывания: «Хотя бы одно из чисел A, B, C...

Определить из трех чисел одно не равное двум другим
Даны три целых числа, одно из которых отличается от двух других, равных между собой. Определить...

Определить, имеется ли среди трех чисел хотя бы одно четное
1.определить имеются ли среди трех чисел,хотя бы одно четное


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru