Чтение списка из строки - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Нужно в переменные типа списка добавить данные из строки(string) помогите реализовать пожалуйста
Листинг программы
  1. program file9v;
  2. type
  3. anketa = record
  4. fam: string;
  5. name: string;
  6. year_end: integer;
  7. numb: integer;
  8. math: integer;
  9. fiz: integer;
  10. rus: integer;
  11. end;
  12. var
  13. i, j, code: integer;
  14. student: array [1..100] of anketa;
  15. file1: text;
  16. put, allfile, help: string;
  17. begin
  18. //Write('Путь к файлу(имя файла, если он находится в папке с программой) - ');
  19. //Readln(put);
  20. //Write('Количество студентов - ');
  21. //Readln(n);
  22. put := 'Vedom.txt';
  23. assign(file1, put);//связываем переменную с файлом
  24. reset(file1);//открываем файл для чтения
  25. while not EOF(file1) do
  26. begin
  27. readln(file1, allfile);
  28. //with student[i] do//
  29. //readln(file1,fam,name,year_end,numb,math,fiz,rus);
  30. Writeln(allfile);
  31. //readln(file1,student[i].fam,student[i].name,student[i].year_end,student[i].numb,student[i].math,student[i].fiz,student[i].rus);
  32. //inc(i);
  33. end;
  34. j := 1;
  35. for i := 1 to length(allfile) do
  36. begin
  37. ///////фамилия
  38. with student[j] do
  39. begin
  40. if pos(' ', allfile[i]) = 0 then // i-й символ не пробел - продолжаем слово
  41. begin
  42. fam := fam + allfile[i];
  43. end;
  44. end;
  45. end;
  46. end.
Пример файла: fam nam 2014 36 4 5 3 fam2 nam2 2014 36 4 5 3 fam3 nam3 2014 36 4 5 3

Решение задачи: «Чтение списка из строки»

textual
Листинг программы
  1.   reset(file1);//открываем файл для чтения
  2.   i := 1;
  3.  
  4.   while not EOF(file1) do
  5.   begin
  6.     readln(file1, allfile); // читаем всю строку
  7.     var arr := allfile.Split('  '.ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries); // разбиваем ее по пробелам
  8.     with student[i] do
  9.     begin
  10.       fam := arr[0]; // и заполняем структуру
  11.       name := arr[1];
  12.       year_end := StrToInt(arr[2]);
  13.       numb := StrToInt(arr[3]);
  14.       math := StrToInt(arr[4]);
  15.       fiz := StrToInt(arr[5]);
  16.       rus := StrToInt(arr[6]);
  17.     end;
  18.     inc(i);
  19.   end;

Объяснение кода листинга программы

  1. Открытие файла для чтения reset(file1);
  2. Инициализация счётчика i := 1;
  3. Чтение списка из файла до конца файла в цикле while while not EOF(file1) do
  4. Разбиваем каждую строку на массив строк arr := allfile.Split('  '.ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries);
  5. Заполняем структуру student[i] значениями из массива arr
  6. Сохраняем фамилию в поле fam
  7. Сохраняем имя в поле name
  8. Сохраняем год окончания в поле year_end
  9. Сохраняем номер в поле numb
  10. Сохраняем оценку по математике в поле math
  11. Сохраняем оценку по физике в поле fiz
  12. Сохраняем оценку по русскому языку в поле rus
  13. Увеличиваем счётчик i inc(i);
  14. Повторяем шаги с 4 по 13 для каждой строки в файле
  15. Закрытие файла close(file1);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы