Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 16.06.2009
Сообщений: 40
1

Запись в файл

11.02.2012, 17:36. Показов 1082. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот написала программку с .asm'овскими вставками, все считает правильно, но вот вопрос как сделать так чтобы он записывал введенные результаты в файл, точнее значения b,w,d без ответа в строчку, т.е. первый ввод 1 строка,
2 ввод-вторая строка и т.д.
Длина 128 символов
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
{
//----------------------------------------------------------------------------
// Lab7.pas
// Group AS-408
//
//----------------------------------------------------------------------------
}
Uses crt;
 
Var
  i,t : Integer;
  x,y : Word;
  b1,b2,b3 : Byte;
  d1 : Longint;
  w1,w2,w3 : Word;
Begin
  ClrScr;
 
  WriteLn ('Hello,User');
  WriteLn ('1. d1+((b1+b2)*(w1-w2)+b3)/w3');
  WriteLn ('2. d1 or ((b1 or b2) and (w1 xor w2) or b3) and (not(w3)');
  WriteLn ('3. LCL(4)');
  WriteLn ('4. ADR(5)');
  WriteLn ('5. CBL(6)');
  WriteLn ('6. CCR(7)R');
  Write ('--------------------------------------------------------------------------------');
  Write ('Enter formulas number: ');
  ReadLn (x);
  WriteLn;
 
  {Checking for number validation}
  if (x < 1) or (x > 6) then
    begin
      WriteLn ('Invalid formulas number');
    end;
 
  {Selection of operation depending from x}
  Case x of
    1:
      begin
        Write ('Enter w1: ');
        ReadLn (w1);
        Write ('Enter w2: ');
        ReadLn (w2);
        Write ('Enter w3: ');
        ReadLn (w3);
        Write ('Enter b1: ');
        ReadLn (b1);
        Write ('Enter b2: ');
        ReadLn (b2);
    Write ('Enter b3: ');
        ReadLn (b3);
        Write ('Enter d1: ');
        ReadLn (d1);
        WriteLn;
        WriteLn ('Rezult: ', d1+((b1+b2)*(w1-w2)+b3)/w3:8:2);
      end;
 
    2:
      begin
        Write ('Enter b1: ');
        ReadLn (b1);
        Write ('Enter b2: ');
        ReadLn (b2);
        Write ('Enter b3: ');
        ReadLn (b3);
        Write ('Enter w1: ');
        ReadLn (w1);
        Write ('Enter w2: ');
        ReadLn (w2);
        Write ('Enter w3: ');
        ReadLn (w3);
        Write ('Enter d1: ');
        ReadLn (d1);
        WriteLn;
        WriteLn ('Rezult: ', d1 or ((b1 or b2) and (w1 xor w2) or b3) and (not(w3)));
      end;
 
    3:
      begin
        WriteLn ('Enter w1:');
        ReadLn (w1);
 
        asm
        mov ax, w1
        mov cl,1
        shl ax,cl
        mov w1,ax
        end;
 
        WriteLn ('LCL(1): ', w1);
      end;
 
    4:
      begin
 
        WriteLn ('Enter d1:');
        ReadLn (d1);
 
        asm
        mov ax,word ptr d1
        mov dx,word ptr d1+2
        end;
        for i := 1 to 2 do
          begin
            asm
            sar ax,1
            sar dx,1
            end;
          end;
        asm
        mov word ptr d1,ax
        mov word ptr d1+2,dx
        end;
 
        WriteLn ('ADR(2): ', d1);
      end;
 
 
 
    5:
      begin
        WriteLn ('Enter b1:');
        ReadLn (b1);
 
        asm
        mov ax,0
        mov al,b1
        mov cl,3
        rol al,cl
        mov b1,al
        end;
 
        WriteLn ('CBL(3): ', b1);
      end;
 
 
    6:
      begin
        WriteLn ('Enter w1:');
        ReadLn (w1);
        y := 0;
        asm
        mov bx,0
        mov ax,w1
        mov cx,4
        clc
 
          rcr ax,1
        rcr ax,1
          rcr ax,1
          rcr ax,1
          rcr ax,1
          rcr ax,1
          rcr ax,1
        mov x,ax
 
        rcl bx,1
        or bl,0
        mov y,bx
        end;
 
        WriteLn ('CWR(4)R: ',x);
        WriteLn ('CF = ',y);
        end;
  end;
 
  WriteLn;
  WriteLn ('Press any key for exit!');
  ReadKey;
End.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.02.2012, 17:36
Ответы с готовыми решениями:

Запись в файл - проверить, не идет ли в него запись, чтобы не генерировалось исключение
Доброе время суток! Вот такой пример: Imports System Imports System.IO Module Module1 ...

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

Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран
1.Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран...

Как разрешить запись в файл, по умолчанию запись не разрешена
Помогите! НАчинающий php - программист. Как разрешить запись в файл, по умолчанию запись не...

6
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.02.2012, 17:56 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Не очень понял, но суть такая. Файл создается в папке с программой.
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
{
//----------------------------------------------------------------------------
// Lab7.pas
// Group AS-408
//
//----------------------------------------------------------------------------
}
Uses crt;
 
Var
  i,t : Integer;
  x,y : Word;
  b1,b2,b3 : Byte;
  d1 : Longint;
  w1,w2,w3 : Word;
  f:text;
Begin
  ClrScr;
  assign(f,'result.txt');
  rewrite(f);
  WriteLn ('Hello,User');
  WriteLn ('1. d1+((b1+b2)*(w1-w2)+b3)/w3');
  WriteLn ('2. d1 or ((b1 or b2) and (w1 xor w2) or b3) and (not(w3)');
  WriteLn ('3. LCL(4)');
  WriteLn ('4. ADR(5)');
  WriteLn ('5. CBL(6)');
  WriteLn ('6. CCR(7)R');
  Write ('--------------------------------------------------------------------------------');
  Write ('Enter formulas number: ');
  ReadLn (x);
  WriteLn;
 
  {Checking for number validation}
  if (x < 1) or (x > 6) then
    begin
      WriteLn ('Invalid formulas number');
    end;
 
  {Selection of operation depending from x}
  Case x of
    1:
      begin
        Write ('Enter w1: ');
        ReadLn (w1);
        write(f,' ',w1);
        Write ('Enter w2: ');
        ReadLn (w2);
        write(f,' ',w2);
        Write ('Enter w3: ');
        ReadLn (w3);
        write(f,' ',w3);
        writeln(f);
        Write ('Enter b1: ');
        ReadLn (b1);
        write(f,' ',b1);
        Write ('Enter b2: ');
        ReadLn (b2);
        write(f,' ',b2);
        Write ('Enter b3: ');
        ReadLn (b3);
        write(f,' ',b3);
        writeln(f);
        Write ('Enter d1: ');
        ReadLn (d1);
        write(f,' ',d1);
        WriteLn;
        WriteLn ('Rezult: ', d1+((b1+b2)*(w1-w2)+b3)/w3:8:2);
       end;
 
    2:
      begin
        Write ('Enter b1: ');
        ReadLn (b1);
        write(f,' ',b1);
        Write ('Enter b2: ');
        ReadLn (b2);
        write(f,' ',b2);
        Write ('Enter b3: ');
        ReadLn (b3);
        write(f,' ',b3);
        writeln(f);
        Write ('Enter w1: ');
        ReadLn (w1);
        write(f,' ',w1);
        Write ('Enter w2: ');
        ReadLn (w2);
        write(f,' ',w2);
        Write ('Enter w3: ');
        ReadLn (w3);
        write(f,' ',w3);
        writeln(f);
        Write ('Enter d1: ');
        ReadLn (d1);
        write(f,' ',d1);
        WriteLn;
        WriteLn ('Rezult: ', d1 or ((b1 or b2) and (w1 xor w2) or b3) and (not(w3)));
      end;
 
    3:
      begin
        WriteLn ('Enter w1:');
        ReadLn (w1);
        write(f,w1);
        asm
        mov ax, w1
        mov cl,1
        shl ax,cl
        mov w1,ax
        end;
 
        WriteLn ('LCL(1): ', w1);
      end;
 
    4:
      begin
 
        WriteLn ('Enter d1:');
        ReadLn (d1);
        write(f,d1);
        asm
        mov ax,word ptr d1
        mov dx,word ptr d1+2
        end;
        for i := 1 to 2 do
          begin
            asm
            sar ax,1
            sar dx,1
            end;
          end;
        asm
        mov word ptr d1,ax
        mov word ptr d1+2,dx
        end;
 
        WriteLn ('ADR(2): ', d1);
      end;
 
 
 
    5:
      begin
        WriteLn ('Enter b1:');
        ReadLn (b1);
        write(f,b1);
        asm
        mov ax,0
        mov al,b1
        mov cl,3
        rol al,cl
        mov b1,al
        end;
 
        WriteLn ('CBL(3): ', b1);
      end;
 
 
    6:
      begin
        WriteLn ('Enter w1:');
        ReadLn (w1);
        write(f,w1);
        y := 0;
        asm
        mov bx,0
        mov ax,w1
        mov cx,4
        clc
 
              rcr ax,1
        rcr ax,1
              rcr ax,1
              rcr ax,1
              rcr ax,1
              rcr ax,1
              rcr ax,1
        mov x,ax
 
        rcl bx,1
        or bl,0
        mov y,bx
        end;
 
        WriteLn ('CWR(4)R: ',x);
        WriteLn ('CF = ',y);
        end;
  end;
  close(f);
  WriteLn;
  WriteLn ('Press any key for exit!');
  ReadKey;
End.
0
0 / 0 / 0
Регистрация: 16.06.2009
Сообщений: 40
11.02.2012, 18:59  [ТС] 3
Мне нужно чтобы после ввода всех значений, они записывались в файл одной строкой
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
11.02.2012, 19:04 4
Ну и записывайте, кто не дает? Вставьте вывод в файл где Вам нужно, а то жуете что-то, даже толком объяснить не можете.
0
0 / 0 / 0
Регистрация: 16.06.2009
Сообщений: 40
12.02.2012, 08:11  [ТС] 5
Простите за нелепое обьяснение(
Мне нужно чтобы при вводе данных для первой формулы они записались в файл,при каждом новом вводе они должны добавляться в этот файл с новой строки, без ответа, а ответ записался в другой файл
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
12.02.2012, 08:28 6
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

То есть нужно записывать данные только если выбран пункт 1?

Добавлено через 13 минут
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
Uses crt;
 
Var
  i,t : Integer;
  x,y : Word;
  b1,b2,b3 : Byte;
  d1 : Longint;
  w1,w2,w3 : Word;
  f:text;
Begin
  ClrScr;
  assign(f,'result.txt');
  {$I-} reset(f);  {$I+}
  if IOResult <> 0 then  rewrite(f)
  else append(f);
  WriteLn ('Hello,User');
  WriteLn ('1. d1+((b1+b2)*(w1-w2)+b3)/w3');
  WriteLn ('2. d1 or ((b1 or b2) and (w1 xor w2) or b3) and (not(w3)');
  WriteLn ('3. LCL(4)');
  WriteLn ('4. ADR(5)');
  WriteLn ('5. CBL(6)');
  WriteLn ('6. CCR(7)R');
  Write ('--------------------------------------------------------------------------------');
  Write ('Enter formulas number: ');
  ReadLn (x);
  WriteLn;
 
  {Checking for number validation}
  if (x < 1) or (x > 6) then
    begin
      WriteLn ('Invalid formulas number');
    end;
 
  {Selection of operation depending from x}
  Case x of
    1:
      begin
        Write ('Enter w1: ');
        ReadLn (w1);
        write(f,' ',w1);
        Write ('Enter w2: ');
        ReadLn (w2);
        write(f,' ',w2);
        Write ('Enter w3: ');
        ReadLn (w3);
        write(f,' ',w3);
        Write ('Enter b1: ');
        ReadLn (b1);
        write(f,' ',b1);
        Write ('Enter b2: ');
        ReadLn (b2);
        write(f,' ',b2);
        Write ('Enter b3: ');
        ReadLn (b3);
        write(f,' ',b3);
        Write ('Enter d1: ');
        ReadLn (d1);
        write(f,' ',d1);
        writeln(f);
        WriteLn;
        WriteLn ('Rezult: ', d1+((b1+b2)*(w1-w2)+b3)/w3:8:2);
       end;
 
    2:
      begin
        Write ('Enter b1: ');
        ReadLn (b1);
        Write ('Enter b2: ');
        ReadLn (b2);
        Write ('Enter b3: ');
        ReadLn (b3);
        write(f,' ',b3);
        Write ('Enter w1: ');
        ReadLn (w1);
        Write ('Enter w2: ');
        ReadLn (w2);
        Write ('Enter w3: ');
        ReadLn (w3);
        write(f,' ',w3);
        Write ('Enter d1: ');
        ReadLn (d1);
        WriteLn;
        WriteLn ('Rezult: ', d1 or ((b1 or b2) and (w1 xor w2) or b3) and (not(w3)));
      end;
 
    3:
      begin
        WriteLn ('Enter w1:');
        ReadLn (w1);
        asm
        mov ax, w1
        mov cl,1
        shl ax,cl
        mov w1,ax
        end;
 
        WriteLn ('LCL(1): ', w1);
      end;
 
    4:
      begin
 
        WriteLn ('Enter d1:');
        ReadLn (d1);
        asm
        mov ax,word ptr d1
        mov dx,word ptr d1+2
        end;
        for i := 1 to 2 do
          begin
            asm
            sar ax,1
            sar dx,1
            end;
          end;
        asm
        mov word ptr d1,ax
        mov word ptr d1+2,dx
        end;
 
        WriteLn ('ADR(2): ', d1);
      end;
 
 
 
    5:
      begin
        WriteLn ('Enter b1:');
        ReadLn (b1);
        asm
        mov ax,0
        mov al,b1
        mov cl,3
        rol al,cl
        mov b1,al
        end;
 
        WriteLn ('CBL(3): ', b1);
      end;
 
 
    6:
      begin
        WriteLn ('Enter w1:');
        ReadLn (w1);
        y := 0;
        asm
        mov bx,0
        mov ax,w1
        mov cx,4
        clc
 
              rcr ax,1
        rcr ax,1
              rcr ax,1
              rcr ax,1
              rcr ax,1
              rcr ax,1
              rcr ax,1
        mov x,ax
 
        rcl bx,1
        or bl,0
        mov y,bx
        end;
 
        WriteLn ('CWR(4)R: ',x);
        WriteLn ('CF = ',y);
        end;
  end;
  close(f);
  WriteLn;
  WriteLn ('Press any key for exit!');
  ReadKey;
End.
1
0 / 0 / 0
Регистрация: 16.06.2009
Сообщений: 40
12.02.2012, 08:45  [ТС] 7
Спасибо огромное!!!!!!!!!!!
0
12.02.2012, 08:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2012, 08:45
Помогаю со студенческими работами здесь

Запись чисел из файла 1, и запись в файл 2 в отсортированном виде
Задание: Есть файл 1, в нем находятся числа, нужно их отсортировать по возрастанию и записать в...

Запись в текстовый файл (каждая запись - отдельная строка)
Добрый вечер) Программа берет данные таблицы Access и записывает их в строчку. Проблема заключается...

Запись строки в массив, сортировка, удаление и запись в файл
Нужна помощь. Из edit box к нам приходят строки мы их фильтруем. нужно строки записать в массив,...

Запись в 2 файла, сравнение и запись в 3-ий файл
Нуждаюсь в помощи с программами, написаны, вот надо готовить отчеты, но проблема в том, что у нас...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru