Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
pk_100
72 / 5 / 4
Регистрация: 18.03.2013
Сообщений: 227
#1

Текст из файла вывести в таблицу

15.03.2015, 19:15. Просмотров 430. Ответов 10
Метки нет (Все метки)

Ребят, задание заключается в том что бы текст из файла вывести в таблицу. Текст в файле идет через запятую. до запятой в одну колонку, после запятой в другую...Примерно так должно выглядеть

Код
*****************************************************************
* Обработка результатов анализа....                             *
*****************************************************************
** Месторождение                        **  содержание железа  **
*****************************************************************
** небольшой текст                      **  68%                **
*****************************************************************
Любая помощь нужна...

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2015, 19:15
Ответы с готовыми решениями:

Вывести текст из файла в таблицу
нужно вывести текст из файла в эту таблицу(это не окончательный вариант...

Вывести текст файла на монитор
Подскажите, что бы просто вывести содержание созданного в блокноте текстового...

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

Считать текст с файла, вывести только предложения, содержащие заданное слово
Написать программу, которая считывает текст из файла и выводит на экран только...

Считать текст из файла и вывести на экран все его предложения в обратном порядке
Написать программу, которая считывает текст из файла и выводит на экран все...

10
pk_100
72 / 5 / 4
Регистрация: 18.03.2013
Сообщений: 227
23.03.2015, 20:45  [ТС] #2
Помогите пожалуйста...
0
ФедосеевПавел
Модератор
3454 / 1951 / 817
Регистрация: 01.02.2015
Сообщений: 6,508
23.03.2015, 21:16 #3
Покажи, как выглядит хоть одна строка файла.
А по большому счёту у тебя
1. Чтение строки из файла
2. Разбиение строки на "слова" каким нибудь методом (но разделитель не пробел, а запятая).
3. Вывод полученных слов в виде таблицы.
0
pk_100
72 / 5 / 4
Регистрация: 18.03.2013
Сообщений: 227
23.03.2015, 21:25  [ТС] #4
Файл:
Обработка результатов анализа, Месторождение, содержание железа, небольшой текст, 68%

Т.е. выгружать в таблицу то что через запятую.. В верхнюю строку "Обработка результатов анализа", дальше "Месторождение" и так далее
0
ФедосеевПавел
Модератор
3454 / 1951 / 817
Регистрация: 01.02.2015
Сообщений: 6,508
23.03.2015, 21:31 #5
Ну и прекрасно. Начни с малого.
Pascal
1
2
3
4
5
6
7
8
9
10
11
program lab;
  procedure GetWords(...);
  begin
  end;
var
...
begin
  s := 'Обработка результатов анализа, Месторождение, содержание железа, небольшой текст, 68%';
  GetWords(s,...);
  распечатать все слова по одному в строчке
end.
Ссылку на несколько процедур выделения слов я привёл. Только у тебя разделителем будет запятая.
0
pk_100
72 / 5 / 4
Регистрация: 18.03.2013
Сообщений: 227
23.03.2015, 21:34  [ТС] #6
Pascal
1
2
3
4
5
6
7
8
9
assign(F, 'ruda.txt');
  Reset(F);
  while not (eof(F))
   do begin
   readln(f,x);
   writeln('*', x, '*');
   end;
   close(f);
  readln;
ну вот часть кода, что мне сделать в середине, что бы таблицей выводилось?
0
ФедосеевПавел
Модератор
3454 / 1951 / 817
Регистрация: 01.02.2015
Сообщений: 6,508
23.03.2015, 21:49 #7
Мне кажется, что ты не очень опытный прогаммист. Поэтому предлагаю такой вариант.
1. Грубо определиться со структурой программы.
2. Начиная с мелких процедур отлаживать и включать в код.
Т.е.
Грубая структура программы
Pascal
1
2
3
4
5
6
7
8
9
10
  assign(F, 'ruda.txt');
  Reset(f);
  while not (eof(f)) do
  begin
    readln(f,x);
    GetWords(x, WordsList, NWords);
    ShowTable(WordsList, NWords);
  end;
  close(f);
  readln;
Теперь видно, что тебе для продолжения работы нужны две процедуры.
Для их отладки и создай временный файл. В этом файле ты будешь пытаться выделить все слова из строки s и сохранить их в списке WordsList, а для контроля - распечатать все слова по одному в строке.
После - попытайся отладить вывод в виде таблицы.
А уже потом - всё вместе при чтении исходных данных из файла.

Иначе - запутаешься и не будешь знать за что хвататься.
0
APALoff
1638 / 1067 / 1080
Регистрация: 03.07.2013
Сообщений: 4,507
23.03.2015, 23:30 #8
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
и сохранить их в списке WordsList
Зачем их сохранять и тем более в списке (динамические структуры тут излишни)?
Во время разбора строки сразу и выводить на экран.
0
ФедосеевПавел
Модератор
3454 / 1951 / 817
Регистрация: 01.02.2015
Сообщений: 6,508
24.03.2015, 11:14 #9
Да, или так.
Но в защиту такого решения есть два аргумента.
1. В примерах по ссылке слова выделяются все сразу или с выводом на экран, а учитывая опыт ТС, лучше, чтобы поменьше изменений.
2. Вывод слов на экран имеет разный вид для каждого слова, поэтому удобно получить список слов, а потом преобразовывать вывод не в цикле, а "вручную".
3. Список не обязательно должен быть на основе динамических структур, можно как и в примерах "обойтись" массивами строк, тем более, что их количество в одной записи заранее известно.
0
APALoff
1638 / 1067 / 1080
Регистрация: 03.07.2013
Сообщений: 4,507
24.03.2015, 11:25 #10
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
2. Вывод слов на экран имеет разный вид для каждого слова,
Для этого изначально необходимы данные о ширине столбцов.
0
ФедосеевПавел
Модератор
3454 / 1951 / 817
Регистрация: 01.02.2015
Сообщений: 6,508
24.03.2015, 11:57 #11
Формат вывода с шириной полей приведён в посте №1.
А если выделять пословно, то можно и так
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
program RudaShow;
 
const
  FileName = 'ruda.txt';
const
  sStars = '*****************************************************************';
 
  function PadRight(s: string; n: integer): string;
  var
    i: integer;
  begin
    for i := length(s) to n do
      s := s + ' ';
    PadRight := s;
  end;
 
  function GetNextWord(var s: string): string;
  var
    p: integer;
  begin
    p := Pos(',', s);
    if p = 0 then
      GetNextWord := s
    else
      GetNextWord := Copy(s, 1, p - 1);
    Delete(s, 1, p);
  end;
 
  procedure ShowTable(s: string);
  var
    w: string;
  begin
    writeln(sStars);
    {Обработка результатов анализа}
    Write('* ');
    w := GetNextWord(s);
    w := PadRight(w, 60);
    Write(w);
    writeln(' *');
    writeln(sStars);
    {Месторождение, содержание железа}
    Write('** ');
    w := GetNextWord(s);
    w := PadRight(w, 35);
    Write(w);
    Write(' ** ');
    w := GetNextWord(s);
    w := PadRight(w, 19);
    Write(w);
    writeln(' *');
    writeln(sStars);
    {небольшой текст, 68%}
    Write('** ');
    w := GetNextWord(s);
    w := PadRight(w, 35);
    Write(w);
    Write(' ** ');
    w := GetNextWord(s);
    w := PadRight(w, 19);
    Write(w);
    writeln(' *');
    writeln(sStars);
  end;
 
var
  f: Text;
  s: string;
begin
  Assign(f, FileName);
  reset(f);
  while not EOF(f) do
  begin
    readln(f, s);
    ShowTable(s);
  end;
  Close(f);
end.
0
24.03.2015, 11:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2015, 11:57

Считать текст из файла и вывести на экран только строки, содержащие двузначные числа
Написать программу, которая считывает текст из файла и выводит на экран только...

Считать текст из файла и вывести на экран только предложения, содержащие заданное слово
Добрый день. форумчане! помогите, пожалуйста, со следующей задачей: Написать...

Дан текст хранящийся в текстовом файле. Вывести на экран каждую вторую строку файла.
Дан текст хранящийся в текстовом файле. Вывести на экран каждую вторую строку...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru