Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 4

Создать выходной файл с записями в виде инициалов студента

29.09.2010, 10:04. Показов 1419. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задан файл, каждая строка которого содержит информацию о студенте в виде "Фамилия Имя Отчество", например "Иванов Виктор Сергеевич". Создать выходной файл с записями в виде "Фамилия И.О.", например "Иванов В.С."
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.09.2010, 10:04
Ответы с готовыми решениями:

Дан исходный текстовый файл. Записать его строки в выходной файл в перевёрнутом виде
грозят отчислением, нужно решить

Создать файл с записями.
Создать файл на диске, содержащий 10 записей с полями ФИО, пол, Зарплата. Вывести сведения о сотрудниках мужского пола с ЗП средней по...

Создать выходной файл
привет всем! подскажите как создать выходной исполняющийся файл, с настройками указанными в основной программе!?

1
 Аватар для Mawrat
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
30.09.2010, 14:25
Лучший ответ Сообщение было отмечено marina30-11 как решение

Решение

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
procedure TForm1.Button1Click(Sender: TObject);
const
  Fn1 = 'file1.txt';
  Fn2 = 'file2.txt';
var
  F1, F2 : TextFile;
  //Входная и выходная строки.
  Str1, Str2 : String;
  //i - индекс символов во входной строке.
  //j - порядковые номера слов.
  //Len - длина входной строки.
  //Pos1 - позиция начала слова во входной строке.
  i, j, Len, Pos1 : Integer;
begin
  AssignFile(F1, Fn1);
 
  //Записываем данные во входной файл.
  Rewrite(F1);
  Writeln(F1, 'Фамилия_1 А_имя Б_отчество');
  Writeln(F1, 'Фамилия_2 В_имя Г_отчество');
  Writeln(F1, 'Фамилия_3 Д_имя Е_отчество');
  Write(F1, 'Фамилия_4 З_имя И_отчество');
  //Запись содержимого файлового буфера в файл.
  Flush(F1);
 
  //Читаем построчно данные из входного файла,
  //обрабатыаем их и записываем результирующие
  //строки в выходной файл.
 
  AssignFile(F2, Fn2);
  Rewrite(F2);
  Reset(F1);
  while not Eof(F1) do begin
    Read(F1, Str1);
    Len := Length(Str1);
    Pos1 := 1;
    j := 0;
    for i := 1 to Length(Str1) do begin
      //Пропускаем разделители.
      if Str1[i] = ' ' then Continue;
      //Отслеживаем начало слова.
      if (i = 1) or (Str1[i - 1] = ' ') then Pos1 := i;
      //Отслеживаем конец слова.
      if (i = Len) or (Str1[i + 1] = ' ') then begin
        //Порядковый номер слова.
        Inc(j);
        //Формируем выходную строку.
        case j of
          //Фамилия.
          1 : Str2 := Copy(Str1, Pos1, i - Pos1 + 1);
          //Имя.
          2 : Str2 := Str2 + ' ' + AnsiUpperCase( Str1[Pos1] ) + '.';
          //Отчество.
          3 : begin
            Str2 := Str2 + ' ' + AnsiUpperCase( Str1[Pos1] ) + '.';
            //Выхдим - т. к. отчество - это последняя нужная нам часть строки.
            Break;
          end;
        end; //case
      end; //if
    end; //for
 
    //Запись результирующей строки в выходной файл.
    Write(F2, Str2);
    //Если достигнут конец строки, но конец файла ещё не достигнут,
    //тогда выполняем переход к следующей строке во входном и выходном файле.
    if Eoln(F1) and ( not Eof(F1) ) then begin
      Readln(F1);
      Writeln(F2);
    end;
  end;
 
  //Закрываем файлы.
  CloseFile(F1);
  CloseFile(F2);
 
  //Flush(F2); здесь выполнять не обязательно, т. к., при закрытии файла
  //файловый буфер переписывается в файл без дополнительных команд.
end;
---
На всякий случай, вариант без проверки каждой строки на конец строки/конец файла:
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
procedure TForm1.Button1Click(Sender: TObject);
const
  Fn1 = 'file1.txt';
  Fn2 = 'file2.txt';
var
  F1, F2 : TextFile;
  //Входная и выходная строки.
  Str1, Str2 : String;
  //i - индекс символов во входной строке.
  //j - порядковые номера слов.
  //Len - длина входной строки.
  //Pos1 - позиция начала слова во входной строке.
  i, j, Len, Pos1 : Integer;
begin
  AssignFile(F1, Fn1);
 
  //Записываем данные во входной файл.
  Rewrite(F1);
  Writeln(F1, 'Фамилия_1 А_имя Б_отчество');
  Writeln(F1, 'Фамилия_2 В_имя Г_отчество');
  Writeln(F1, 'Фамилия_3 Д_имя Е_отчество');
  Write(F1, 'Фамилия_4 З_имя И_отчество');
  //Запись содержимого файлового буфера в файл.
  Flush(F1);
 
  //Читаем построчно данные из входного файла,
  //обрабатыаем их и записываем результирующие
  //строки в выходной файл.
 
  AssignFile(F2, Fn2);
  Rewrite(F2);
  Reset(F1);
  while not Eof(F1) do begin
    Readln(F1, Str1);
    Len := Length(Str1);
    Pos1 := 1;
    j := 0;
    for i := 1 to Length(Str1) do begin
      //Пропускаем разделители.
      if Str1[i] = ' ' then Continue;
      //Отслеживаем начало слова.
      if (i = 1) or (Str1[i - 1] = ' ') then Pos1 := i;
      //Отслеживаем конец слова.
      if (i = Len) or (Str1[i + 1] = ' ') then begin
        //Порядковый номер слова.
        Inc(j);
        //Формируем выходную строку.
        case j of
          //Фамилия.
          1 : Str2 := Copy(Str1, Pos1, i - Pos1 + 1);
          //Имя.
          2 : Str2 := Str2 + ' ' + AnsiUpperCase( Str1[Pos1] ) + '.';
          //Отчество.
          3 : begin
            Str2 := Str2 + ' ' + AnsiUpperCase( Str1[Pos1] ) + '.';
            //Выхдим - т. к. отчество - это последняя нужная нам часть строки.
            Break;
          end;
        end; //case
      end; //if
    end; //for
 
    //Запись результирующей строки в выходной файл.
    Writeln(F2, Str2);
  end;
 
  //Закрываем файлы.
  CloseFile(F1);
  CloseFile(F2);
 
  //Flush(F2); здесь выполнять не обязательно, т. к., при закрытии файла
  //файловый буфер переписывается в файл без дополнительных команд.
end;
В этом варианте в конце выходного файла будет появляться пустая строка, назависимо от того имеется ли пустая строка во входном файле или нет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.09.2010, 14:25
Помогаю со студенческими работами здесь

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

Невозможно создать выходной файл
объясните выскакивание ошибки F2039 Could not create output file 'Project1.exe'? Выскакивает сама по сибе как будто прграмма...

Создать текстовый файл с записями фиксированной длины.
Создать текстовый файл с записями фиксированной длины. Файл содержит информацию о стоимости 10 наименований товаров в различных...

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

Необходимо создать выходной файл, который содержит информацию о среднем балле группы
нужна ваша помощь 1) Написать программу, которая содержит 1.1 Главную функцию. 1.2 Класс для обработки данных 1.2.1 Функцию...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru