Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 11.10.2019
Сообщений: 59

Почему файл не сохраняет полученную информацию?

06.12.2019, 16:56. Показов 1367. Ответов 5

Студворк — интернет-сервис помощи студентам
задание следующее:Cоздать файл f,содержащий М слов. Выполнить сортировку слов методом быстрой сортировки. Переписать весь текст в обратном порядке и записать в его в другой файл Q. Обеспечить вывод вариантов последовательностей слов. вот мой код. Все работает как надо, за исключением одного: информация в файлах не отображается. Почему? Как исправить?
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
const
  t = 100;
type
  mas = array[1..t] of string;
var
  f, q: text;
  str: string;
  i, count, m, h, x, n, j, d: integer;
  a: mas;
 
procedure QuickSort(L, R: Integer );{ Быстрая сортировка массива A[] }
var
  k, g: integer;
  z, y: string;
begin
  k := l; g := r;
  z := a[(l + r) div 2];
  repeat
    while (A[k] < z) do inc(k);
    while (z < A[g]) do dec(g);
    if (k <= g ) then
    begin
      y := A[k]; a[k] := a[g]; a[g] := y;
      inc(k); dec(g);
    end;
  until (k > g);
  if (l < g) then QuickSort(l, g);
  if (k < r) then QuickSort(k, r);
end;
 
begin
  Assign(f, 'file1.txt'); {устанавливаем связь файловой переменной с физическим файлом на диске}
  Rewrite(f);{открываем файл для записи}
  writeln('введите количество слов');
  Readln(m); 
  writeln('введите слова');{определим количество вводимых слов}
  begin
    readln(str); 
    i := length(str);
    if i > 0 then begin
      count := 1;
      while i > 0 do 
      begin
        if str[i] = ' ' then
          count := count + 1;
        i := i - 1;
      end;
    end
    else
      count := 0;
    if count = m then writeln(f, str)
    else writeln('неверное количество слов');{записываем последовательно строки в файл}
  end;
  close(f); {заканчиваем работу с первым файлом, теперь на диске существует файл с именем file1.txt, содержащий введенные нами строки. На этом программу можно закончить, работу с файлом можно продолжить в другой программе, в другое время, но мы продолжим}
  str := ' ' + str + ' ';
  x := 1; 
  n := 0;
  for h := 1 to length(str) - 1 do
    if (str[h] = ' ') and (str[h + 1] <> ' ') then
    begin
      j := h;
      repeat
        j := j + 1;
        n := n + 1;
      until str[j] = ' ';
      a[x] := copy(str, h + 1, n);
      x := x + 1; n := 0;
    end;
  QuickSort( 1, m ); { на входе: левая и правая граница сортировки } 
  Assign(q, 'file.txt'); {устанавливаем связь файловой переменной с физическим файлом на диске}
  Rewrite(q);{открываем файл для записи}
  writeln('после сортировки:');
  for d := m downto 1 do write(a[d]);
  close(q);
  
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.12.2019, 16:56
Ответы с готовыми решениями:

Вывести полученную информацию в файл
В общем как вывести полученные данные в консоль это я вроде как знаю, а вот вывести в файл не получается . using System; using...

Почему не сохраняет в файл часть картинки
Когда вставляю в Picture1 скрин экрана целиком, то сохраняет картинку в файл Pic1.Picture = Clipboard.GetData: DoEvents: SavePicture...

Почему PHP сохраняет в html-файл вместо русского текста кракозябры?
$htmlCode = &quot;&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; ...

5
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,433
06.12.2019, 16:59
На 1-й взгляд.
Строка 73:
Pascal
1
for d := m downto 1 do write(a[d]);
замените на
Pascal
1
for d := m downto 1 do write(q,a[d]);
0
0 / 0 / 0
Регистрация: 11.10.2019
Сообщений: 59
06.12.2019, 17:09  [ТС]
Не помогло( у меня и в f файл не записывается, хотя там указано
0
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,433
06.12.2019, 17:17
Цитата Сообщение от arimaprog Посмотреть сообщение
в f файл не записывается
Записывается. см. file1.txt
сортированный в file.txt
0
0 / 0 / 0
Регистрация: 11.10.2019
Сообщений: 59
06.12.2019, 17:46  [ТС]
то есть у вас работает?
0
Модератор
10451 / 5746 / 3409
Регистрация: 17.08.2012
Сообщений: 17,477
06.12.2019, 18:32
И у меня работает. Правильно или нет - выяснять неохота.

Может быть, Вы ищете Ваши текстовые файлы не в том месте? Файлы создаются в папке с программой. Вы можете ответить на вопрос, где располагается (откомпилированный) исполняемый файл Вашей программы? Полагаю, что не можете, иначе бы вопроса не задали.

Собственно, знать, где у Вас исполняемый файл, не обязательно, для Вас главное - знать, куда записываются текстовые файлы. Создайте где-нибудь, например, в корне какого-нибудь диска, папку, и добавьте к имени файла путь до этой папки. Например, на диске d создайте папку data (имя лучше без пробелов и покороче), и в программе замените
Pascal
32
  Assign(f, 'd:\data\file1.txt'); {устанавливаем связь файловой переменной с физическим файлом на диске}
и
Pascal
70
  Assign(q, 'd:\data\file.txt'); {устанавливаем связь файловой переменной с физическим файлом на диске}
, и текстовые файлы будут формироваться в этой папке. Можно и не создавать папку, а писать прямо в корень диска:
Pascal
32
  Assign(f, 'd:\file1.txt'); {устанавливаем связь файловой переменной с физическим файлом на диске}
и
Pascal
70
  Assign(q, 'd:\file.txt'); {устанавливаем связь файловой переменной с физическим файлом на диске}
, тогда файлы будут лежать среди прочего мусора в корне диска d.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.12.2019, 18:32
Помогаю со студенческими работами здесь

Магнитола не сохраняет последний воспроизведённый файл (с флешки), а позицию сохраняет
Во общем в машине есть магнитола JVC, в ней есть CD диск, USB flash накопитель и радио... Так вот: если на флешке будет играть музыка то...

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

Написать программу, которая находит сумму элементов каждой строки массива и сохраняет полученную сумму в массиве
Помогите, пожалуйста!!! Дан двумерный массив S. Написать программу, которая находит сумму элементов каждой строки массива и сохраняет...

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru