Вверх ↑
Этот топик читают: Гость
Ответов: 1926
Рейтинг: 172
#1: 2007-08-09 09:12:02 ЛС | профиль | цитата
Помогите разобраться!
Решил на Delphi в IC написать код для сохранения данных в типизированных файлах. Пишу:
procedure THiAsmClass.doWr;
var F:File of integer;
st : integer;
begin
AssignFile(F,'1.dat');
Reset(F);
st := 333;
Write(F,st);
end;

Это он понимает и делает. Но когда пишу:
procedure THiAsmClass.doWr;
var F:File of PStream;
st : PStream;
begin
AssignFile(F,'1.txt');
Reset(F);
st := ReadStream(_Data,Data,0);
Write(F,st);
end;

, то при попытке сохранить выдаёт RunTime Error 2....
Что не так делаю? Или туплю в чём-то? Подскажите!
карма: 9
0
Администрация
Ответов: 15295
Рейтинг: 1519
#2: 2007-08-09 11:33:11 ЛС | профиль | цитата
сия задача реализуется одним элементом:
Add(FileStream,10294903,182,490)
{
FileName="1.txt"
Mode=1
AutoCopy=0
Point(doCopyFromStream)
}
Add(PointHint,13354955,28,490)
{
Info=#20:Сюда подавать Stream|
Width=127
Height=25
link(Event,10294903:doCopyFromStream,[(169,502)(169,510)])
}

карма: 27
0
Ответов: 1926
Рейтинг: 172
#3: 2007-08-09 16:19:13 ЛС | профиль | цитата
Это известно мне, решил для самосовершенствования на Delphi что-то научиться написать.
карма: 9
0
Ответов: 9906
Рейтинг: 351
#4: 2007-08-09 16:34:22 ЛС | профиль | цитата
3042, тогда давай для начала потренируемся в адекватном изложении информации
3042 писал(а):
то при попытке сохранить выдаёт RunTime Error 2....

Не подтверждается.
Встречный вопрос: а что я делаю не так
карма: 9

0
Гость
Ответов: 17029
Рейтинг: 0
#5: 2007-08-09 17:00:51 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-04 06:31:38
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#6: 2007-08-09 18:14:18 ЛС | профиль | цитата
вторая схема RunTime Error будет выдавать, если в поток не попали данные типа Stream. Наверно. Просто никогда не видел использование типизированных файлов с указательными типами...
карма: 27
0
Ответов: 9906
Рейтинг: 351
#7: 2007-08-09 18:33:08 ЛС | профиль | цитата
User 108 писал(а):
а у меня вообще обе схему эту ошибку выдают..

Не видел схем пока
карма: 9

0
Ответов: 1926
Рейтинг: 172
#8: 2007-08-14 12:49:16 ЛС | профиль | цитата
Galkov писал(а):
Не подтверждается.


У меня версия HiAsm - 160.
Пшу в IC код (второй в первом посте), создавю точку doWR, подключаю к ней
Add(FileStream,16619647,308,161)
{
}
Add(Button,16482932,203,161)
{
Left=200
Top=160
link(onClick,208033:doExecute,[])
}
Add(ODialog,208033,252,161)
{
link(onExecute,16619647:doOpen,[])
}

А после выбора файла - ошибка...
Так адеквадтно?

Кстати, ещё вопросик появился. Есть массив в IC:
Arr:array[0..9] of PStream;
требуется сохранить его в файле. Что-то ничего в голову не идёт.
карма: 9
0
Ответов: 9906
Рейтинг: 351
#9: 2007-08-14 12:58:34 ЛС | профиль | цитата
3042 писал(а):
Так адеквадтно?

НЕТ
Приведенной информации недостаточно, для воспроизведения ошибки.
Я тупой, и не понимаю, в какой последовательности и какие кнопки нажимать, чтобы получить именно Вашу ошибку.
Ошибки в принципе, я получать умею, но это мне не интересно и не является моей целью.
И что характерно, становиться "умнее" - не вижу ни одной убедительной причины.

3042 писал(а):
Что-то ничего в голову не идёт

И слава богу.
Ты еще хэндлы окон сохрани, и найди потом их, прочитавши из файла через неделю
карма: 9

0
Ответов: 1926
Рейтинг: 172
#10: 2007-08-14 13:20:01 ЛС | профиль | цитата
Galkov писал(а):
НЕТ

На нет и суда нет. Кто знает, как разобраться - подскажите.
И
3042 писал(а):
Кстати, ещё вопросик появился. Есть массив в IC: Arr:array[0..9] of PStream; требуется сохранить его в файле. Что-то ничего в голову не идёт.

карма: 9
0
Ответов: 9906
Рейтинг: 351
#11: 2007-08-14 13:28:14 ЛС | профиль | цитата
3042, многолетнее наблюдение: если просто 10 минут подумать, и изложить проблему сразу "воспроизводимо", то необходмые знания и понимание можно приобрести за день.
А не за неделю. А можно и вовсе не приобрести.

Как хочешь, в общем. Продолжай обижаться - не ты первый. Уверен - не последний.
карма: 9

0
Ответов: 1926
Рейтинг: 172
#12: 2007-08-14 13:57:22 ЛС | профиль | цитата
Я ни на что не обижаюсь, я просто пошу помощи! Разве непонятно
3042 писал(а):
Кстати, ещё вопросик появился. Есть массив в IC: Arr:array[0..9] of PStream; требуется сохранить его в файле.

карма: 9
0
Ответов: 9906
Рейтинг: 351
#13: 2007-08-14 14:10:14 ЛС | профиль | цитата
А я уже устал объяснять: помощь бывает после "воспроизведения" баги
У меня уже даже текст кончился.
карма: 9

0
Ответов: 2125
Рейтинг: 159
#14: 2007-08-14 15:47:51 ЛС | профиль | цитата
3042 писал(а):
Есть массив в IC: Arr:array[0..9] of PStream; требуется сохранить его в файле

Буквально, эта фраза означает - надо сохранить адреса объектов (находящихся в оперативной памяти) в файл. Спрашивается, на кой тебе сохранять адреса объектов TStream? Может ты имел ввиду сохранение данных, находящихся в объектах TStream? Но в таком случае тебе надо сначала считать эти данные из TStream в буфер, а уж потом записать эти данные из буфера в файл.
карма: 1

0
Ответов: 9906
Рейтинг: 351
#15: 2007-08-14 15:57:43 ЛС | профиль | цитата
tsdima писал(а):
Может ты имел ввиду ...



tsdima писал(а):
Но в таком случае тебе надо сначала считать эти данные из TStream в буфер, а уж потом записать эти данные из буфера в файл

Да ну
карма: 9

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)