Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/55: Рейтинг темы: голосов - 55, средняя оценка - 4.58
9 / 1 / 3
Регистрация: 15.06.2016
Сообщений: 224

Выделить числа из строки

04.09.2016, 00:13. Показов 10275. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать в данном случае проверку на совпадения S[k] с числом? Пробел служит чертой между данными в текстовом документе, там все вида:
123 321 432
432 234 ...
моя задача, написать программу перезаписывающую все в вид:
123
321
432
....
Я хотел проверять совпадение S[k] с числом, тогда все остальные символы служили бы ограничителями. И при их начличии все переносилось бы на след строку. Не хочет сравнивать S[k] с числами. Вот код:
P.S.если не сложно, укажите на всю глупость моего написания и ошибки.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{если имеем любое число, пишем в строку, если не число, то переносим на след строку}
function reconstruct(var f:text;k:integer;s:string):boolean;
begin
rewrite(f);
while not eof(f) do
begin
for k:=0 to length(s) do 
begin
if S[k] = 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or 0
then write(s[k])
else writeln;
end;
reconstruct(true);
close(f);
end;
end;
 
{главная программа}
var f:text;
begin
assign(f, 'БД.txt');
reconstruct;
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.09.2016, 00:13
Ответы с готовыми решениями:

Строки. Выделить из строки все подстроки, содержащие числа, и преобразовать в тип integer
Буду очень признателен если вы поможете с этим заданием. А задание таково: у нас есть строка S, она имеет такой вид (общий) => S:='123...

Строка: Выделить из строки все числа, игнорируя всё остальное.
Здравствуйте, помогите сделать такое задание: требуется выделить из строки все числа, игнорируя всё остальное. Строка разделяется...

Строки. Выделить подстроку, которая соответствует записи целого числа
Ребята помогите пожалуйста Дана строка, состоящая из букв, цифр, запятых, точек, знаков “+” и “-“. Выделить подстроку, которая...

2
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8665 / 4502 / 1670
Регистрация: 01.02.2015
Сообщений: 13,928
Записей в блоге: 13
04.09.2016, 08:02
А если пойти по пути выделения слов из строки?
Там будет больше кода, но зато в итоге программа будет более структурированная.
Pascal
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
program test;
 
type
  {тип для набора ограничителей слов в строке}
  TCharSet = set of char;
const
  {Список всех ограничителей слов в строке}
  Delim_Set: TCharSet = [' ', '.', ',', '!', '?', '-', ':', ';',
    '(', ')', '[', ']', '{', '}'];
 
{Нахождение слова из строки Src.
 Поиск слова начинается с позиции StartPos.
 На выходе не только очередное слово, но и переменная StartPos
 указывает на следующий за словом символ.
 Если слово не найдено, то StartPos=Length(Src)+1.}
  function GetNextWord(const Src: string; var StartPos: integer;
    const Delimiters: TCharSet): string;
  var
    i: integer;
  begin
    i := StartPos;
    {i-текущая позиция в анализируемой строке}
    {ищем первую букву слова}
    while (i <= Length(Src)) do
      if (Src[i] in Delimiters) then
        Inc(i)
      else
        Break;
    StartPos := i;
    {StartPos указывает на первую букву в слове или на "следующий за последним символом в строке"=Length(Src)+1}
    {теперь просматриваем слово пока не закончится строка или
     не начнутся ограничители слов}
    while (i <= Length(Src)) do
      if not (Src[i] in Delimiters) then
        Inc(i)
      else
        Break;
    {i - указывает на следующий за словом индекс (т.е. на очередной пробел)}
 
    GetNextWord := Copy(Src, StartPos, i - StartPos);
 
    StartPos := i;{для дальнейшего использования}
  end;
 
var
  s: string;
  StartPos: integer;
begin
  s := '12 345 6789 121212 32132 1';
  StartPos := 1;
  repeat
    writeln(GetNextWord(s, StartPos, Delim_Set));
  until StartPos > length(s);
end.
1
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
05.09.2016, 10:08
Из условия усматривается, что у вас в текстовом документе только числа и пробелы. Если это так, то достаточно:
Pascal
1
2
3
while not SeekEoF(f) do begin
  Read(f,n); WriteLn(o,n)
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.09.2016, 10:08
Помогаю со студенческими работами здесь

Строки. Выделить в подстроку все символы исходной строки, расположенные между первым и вторым двоеточием
Дана строка s, содержащая менее чем 200 символов. Получить подстроку символов, включающую все символы исходной строки, расположенные между...

Выделить из строки подстроки, не содержащих знаков: больше, меньше, равно. Каждая выделенная подстрока должна быть выведена с новой строки.
Ребят помогите,зачет завтра , а программы очень нужны) заранее благодарен! Это две разные программы: 1.Выделить из строки...

Выделить слова из строки.
Ввести строку. На печать выдать слова, имеющие нечетную длину.

Выделить из строки имя файла.
1.дана строка, содержащая полное имя файла, то есть имя диска, список каталогов (путь), собственно имя и расширение. Выделить из этой...

Выделить из строки имя файла
Дана строка, содержащая полное имя файла, то есть имя диска, список каталогов (путь), собственно имя и расширение. Выделить (вывести) из...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru