21

Re: Таблиці - відфільтрувати записи з данними про холодильники (продовж.)

а якщо в read я почну писати так

(f, tabl[i].nazva , tabl[i].kamera) 

хоча ні це для типізованоо файлу

22

Re: Таблиці - відфільтрувати записи з данними про холодильники (продовж.)

misha_beginner написав:

ну дивіться я робив приклад по цьому http://mojainformatika.ru/paskal/uroki- … -fajl.html .

Я подивився за посиланням і ніде не знайшов там нічого схожого навіть на перший рядок з того фрагменту коду, що я вам навів. Як ви примудрилися робити код за зразком, але зовсім не той, що в зразку? Чи ви його робили не за тим зразком?

я не розумію шо треба було тут записати в read

Треба або писати в файл так, щоб потім було зручно читати, або читати рядок, розкладати на на частини і пхати їх в різні елементи tabl.

23

Re: Таблиці - відфільтрувати записи з данними про холодильники (продовж.)

типу

(f, tabl[i].nazva , tabl[i].kamera)

і т.д.  ????

24 Востаннє редагувалося koala (14.01.2014 22:29:04)

Re: Таблиці - відфільтрувати записи з данними про холодильники (продовж.)

misha_beginner написав:

типу

(f, tabl[i].nazva , tabl[i].kamera)

і т.д.  ????

Тоді буде зчитуватися по одному рядку в кожну змінну.

25

Re: Таблиці - відфільтрувати записи з данними про холодильники (продовж.)

натякінть будь ласка, дайте повштовх. я просто іншого способу не знаю

26

Re: Таблиці - відфільтрувати записи з данними про холодильники (продовж.)

Так дав уже, ви просто ігноруєте його. Мені повторити?

27

Re: Таблиці - відфільтрувати записи з данними про холодильники (продовж.)

розкладати на на частини і пхати їх в різні елементи tabl.

ну хоч вбийте, не розумыю як це зробити. як це приблизно реалізується в коді ??

28

Re: Таблиці - відфільтрувати записи з данними про холодильники (продовж.)

misha_beginner написав:

розкладати на на частини і пхати їх в різні елементи tabl.

ну хоч вбийте, не розумыю як це зробити. як це приблизно реалізується в коді ??

Ви записували отак:

writeln(f,tabl[i].virobn,' ',tabl[i].nazvanie,' ', tabl[i].kamera, ' ', tabl[i].rik, ' ' , tabl[i].misce, ' ' , tabl[i].cina , ' ' , tabl[i].kilkist);

А як би ви це вичитували? Підключіть логіку: маєте же готову структуру рядку.

29

Re: Таблиці - відфільтрувати записи з данними про холодильники (продовж.)

koala написав:

А тепер спробуйте пояснити, що саме робить ось цей фрагмент коду:

 while not eoln(f) do begin
  read(f,s);
  write(s);
  end;

Бо проблема саме в ньому.

Ви так і не спромоглися пояснити, що робить цей код. Вважаю подальшу розмову непродуктивною.

30

Re: Таблиці - відфільтрувати записи з данними про холодильники (продовж.)

koala написав:
koala написав:

А тепер спробуйте пояснити, що саме робить ось цей фрагмент коду:

 while not eoln(f) do begin
  read(f,s);
  write(s);
  end;

Бо проблема саме в ньому.

Ви так і не спромоглися пояснити, що робить цей код. Вважаю подальшу розмову непродуктивною.

Господи Боже. Говорю. Думав зчитати з фалйа f  дані які б записались у s. після зчитування думав вони мали би записатись тобто ті дані яків ми ввесли мали би записатись

31

Re: Таблиці - відфільтрувати записи з данними про холодильники (продовж.)

Bartash написав:
misha_beginner написав:

розкладати на на частини і пхати їх в різні елементи tabl.

ну хоч вбийте, не розумыю як це зробити. як це приблизно реалізується в коді ??

Ви записували отак:

writeln(f,tabl[i].virobn,' ',tabl[i].nazvanie,' ', tabl[i].kamera, ' ', tabl[i].rik, ' ' , tabl[i].misce, ' ' , tabl[i].cina , ' ' , tabl[i].kilkist);

А як би ви це вичитували? Підключіть логіку: маєте же готову структуру рядку.

але мені сказав koala Тоді буде зчитуватися по одному рядку в кожну змінну.

32

Re: Таблиці - відфільтрувати записи з данними про холодильники (продовж.)

koala я признаюсь вам, мені сказали так зробити, непояснивши чому так. з цим readln і write я з вами тут не сперечаюсь, якийсь бред  написав, вибачте мене тупого.

33

Re: Таблиці - відфільтрувати записи з данними про холодильники (продовж.)

misha_beginner написав:
Bartash написав:
misha_beginner написав:

ну хоч вбийте, не розумыю як це зробити. як це приблизно реалізується в коді ??

Ви записували отак:

writeln(f,tabl[i].virobn,' ',tabl[i].nazvanie,' ', tabl[i].kamera, ' ', tabl[i].rik, ' ' , tabl[i].misce, ' ' , tabl[i].cina , ' ' , tabl[i].kilkist);

А як би ви це вичитували? Підключіть логіку: маєте же готову структуру рядку.

але мені сказав koala Тоді буде зчитуватися по одному рядку в кожну змінну.

Давайте так: для чого будуть використовуватися вичитані дані?

Варіант 1

Задача: просто вивести на екран
Розв'язок: створюємо змінну типу рядка таблиці (xolod, чи як там?) і у циклі вичитуємо в неї по рядку з файлу. При цьому одразу виводимо змінну на екран, бо на наступній ітерації вона буде перетерта.

Варіант 2

Задача: Зберегти вичитані дані для подальшої роботи
Розв'язок: Створюємо масив (колекцію, список - я не в курсі, як це точно у Pascal) структур типу xolod. Потім у циклі додаємо до масиву кожну вичитану (попередньо її треба розпарсити - файл же текстовий).

34

Re: Таблиці - відфільтрувати записи з данними про холодильники (продовж.)

Bartash написав:
misha_beginner написав:
Bartash написав:

Ви записували отак:

writeln(f,tabl[i].virobn,' ',tabl[i].nazvanie,' ', tabl[i].kamera, ' ', tabl[i].rik, ' ' , tabl[i].misce, ' ' , tabl[i].cina , ' ' , tabl[i].kilkist);

А як би ви це вичитували? Підключіть логіку: маєте же готову структуру рядку.

але мені сказав koala Тоді буде зчитуватися по одному рядку в кожну змінну.

Давайте так: для чого будуть використовуватися вичитані дані?

Варіант 1

Задача: просто вивести на екран
Розв'язок: створюємо змінну типу рядка таблиці (xolod, чи як там?) і у циклі вичитуємо в неї по рядку з файлу. При цьому одразу виводимо змінну на екран, бо на наступній ітерації вона буде перетерта.

Варіант 2

Задача: Зберегти вичитані дані для подальшої роботи
Розв'язок: Створюємо масив (колекцію, список - я не в курсі, як це точно у Pascal) структур типу xolod. Потім у циклі додаємо до масиву кожну вичитану (попередньо її треба розпарсити - файл же текстовий).

ось як звучить завдання
скласти програму створення текстового файлу з іменем Т, з інформацією про "холодильники"; вивести відповідну таблицю даних файла і ту її частину, яка містить відомості про холодильники на складі: місто виробництва, назва холодильника, обсяг холодильної камери, рік та місяць випуску, ціна, кількість. використовуючи сформований файл, вивести інформацію про холодильники 1993 року випуску. передбачити в програмі вилучення та добавлення даних.

35

Re: Таблиці - відфільтрувати записи з данними про холодильники (продовж.)

зробив отак

const 
      n=4;
 type
    xolod = record
      virobn:string[50];
      nazvanie:string[45];
      kamera:real;
      rik:integer;
      misce:string[45];
      cina:real;
      kilkist:real;
    end;
   var
      i:integer;
      tabl:array[1..n] of xolod;
      
      f:text;
      s:string;
      procedure lin(m:integer);
      var
         i:integer;
  begin
  for i:=1 to m do
  write('-');
  writeln;
  end;
  
  begin
  
  assign(f,'xolodilnik.txt');
  
  append(f);
  Writeln('Vvedi danni');
  For i:=1 to n do
  begin
   Write('virobn:'); readln(tabl[i].virobn);
     Write('nazvanie:'); readln(tabl[i].nazvanie);
     Write('kamera:');  readln(tabl[i].kamera);
     Write('rik:'); readln(tabl[i].rik);
     Write('misce:'); readln(tabl[i].misce);
     Write('cina:'); readln(tabl[i].cina);
     Write('kilkist:'); readln(tabl[i].kilkist);
   
  end;
  reset(f);
  
  while not eof(f) do begin
       while not eoln(f) do begin
  read(f,tabl[i].virobn, tabl[i].nazvanie, tabl[i].kamera, tabl[i].rik,  tabl[i].misce,  tabl[i].cina , tabl[i].kilkist);
  write(f,tabl[i].virobn,' ',tabl[i].nazvanie,' ', tabl[i].kamera, ' ', tabl[i].rik, ' ' , tabl[i].misce, ' ' , tabl[i].cina , ' ' , tabl[i].kilkist);
  end;
  end;
  close(f);
  Lin(69);
  writeln(' | Виробництво | Назва | Обэм Камери | Рік | Місце | Ціна | Кількість|');
  Lin(69);
  For i:=1 to n do
  begin
   write(' |', tabl[i].virobn:10,'|');
write(tabl[i].nazvanie:10,'|',tabl[i].kamera:13,'|', tabl[i].rik:4,'|', tabl[i].misce:9,'|' , tabl[i].cina:9,'|' , tabl[i].kilkist:9,'|');
writeln;
Lin(69);
end;
  writeln;
  writeln('vidsortovano');
  Lin(69);
  For i:=1 to  n do
  begin
  If  (tabl[i].rik = 1993) then
  begin
write(' |', tabl[i].virobn:10,'|');
write(tabl[i].nazvanie:15,'|',tabl[i].kamera:16,'|', tabl[i].rik:4,'|', tabl[i].misce:9,'|' , tabl[i].cina:9,'|' , tabl[i].kilkist:9,'|');
  writeln;
  Lin(69);
  end;
  end;
  End.

але всеодно напевно не так

36

Re: Таблиці - відфільтрувати записи з данними про холодильники (продовж.)

misha_beginner написав:

ось як звучить завдання
скласти програму створення текстового файлу з іменем Т, з інформацією про "холодильники"; вивести відповідну таблицю даних файла і ту її частину, яка містить відомості про холодильники на складі: місто виробництва, назва холодильника, обсяг холодильної камери, рік та місяць випуску, ціна, кількість. використовуючи сформований файл, вивести інформацію про холодильники 1993 року випуску. передбачити в програмі вилучення та добавлення даних.

Прекрасно. Все спрощує визначає оце:

передбачити в програмі вилучення та добавлення даних.

Спочатку - пропозиція:
1. Виводити дані з бази згідно Варіанту 1.
2. Додавання - суто допис в кінець файлу.

Тепер питання до вас:
1. Яким чином очікується вилучати дані? У сенсі - за яким критерієм ідентифікувати рядок у базі?

37 Востаннє редагувалося User 298 (15.01.2014 00:44:38)

Re: Таблиці - відфільтрувати записи з данними про холодильники (продовж.)

але всеодно напевно не так

Скріншот результату в студію: жодної уяви про те, як цей код виконується на уявному файлі.

З.І: Суть зауваження: всяка програма має видавати очікуваний результат. Якщо вона видає неочікуваний результат - програмісту ламають пальці її переписують.

38

Re: Таблиці - відфільтрувати записи з данними про холодильники (продовж.)

за допомогою append(f). пишеться замысть rewrite

39 Востаннє редагувалося misha_beginner (15.01.2014 00:50:50)

Re: Таблиці - відфільтрувати записи з данними про холодильники (продовж.)

Bartash написав:

але всеодно напевно не так

Скріншот результату в студію: жодної уяви про те, як цей код виконується на уявному файлі.

ось

Post's attachments

Безымянный1111.png 1.09 mb, 272 downloads since 2014-01-14 

40

Re: Таблиці - відфільтрувати записи з данними про холодильники (продовж.)

misha_beginner написав:

за допомогою append(f). пишеться замысть rewrite

Це ви про що? 0_о

З.І: мене цікавив скріншот output, а не помилок.