Форум: "Начинающим";
Текущий архив: 2010.11.14;
Скачать: [xml.tar.bz2];
ВнизЗапись типизированных файлов больше 2 гиг Найти похожие ветки
← →
A_Ton © (2010-08-18 12:14) [0]Нужен пример копирования произвольного непрерывного фрагмента из такого файла в новый файл. Номера фреймов начала и конца фрагмента имею, читать могу, а вот копировать когда фрагмент находится в области за 2 гигами ( до 4 гиг ) не получается ;-( . Может кто помочь?
← →
brother © (2010-08-18 12:32) [1]> читать могу, а вот копировать когда фрагмент находится в
> области за 2 гигами ( до 4 гиг ) не получается ;-( . Может
> кто помочь?
показывай код ;)
← →
A_Ton © (2010-08-18 12:33) [2]Народ, если сами не знаете, то хоть подскажите где должны знать и смогут помочь, плиз...
← →
brother © (2010-08-18 12:34) [3]возможно здесь помогут, из тебя код клещами тянуть?
← →
Юрий Зотов © (2010-08-18 12:34) [4]Похоже, Вы читаете весь файл сразу.
← →
A_Ton © (2010-08-18 12:36) [5]
показывай код ;)
Вы от ответа не уходите, я ведь никому не предлагал свой код... мне Ваш пример нужен, а ен разбор моих ошибок!
← →
brother © (2010-08-18 12:43) [6]> Вы от ответа не уходите,
я и не ухожу
> я ведь никому не предлагал свой код
спрятал хорошо?
> мне Ваш пример нужен,
тебе нужен программист?
> а ен разбор моих ошибок!
вообще то так обычно и делается
← →
A_Ton © (2010-08-18 12:43) [7]
> Похоже, Вы читаете весь файл сразу.
Нет, читаю фреймами. Обозначаю начало и конец нужного фрагмента, позиционируюсь правильно. Для записи использую
WriteFile(Hdc,RecFile,SizeOf(RecFile),bytesWritten, nil);
Создаю файл нулевой длинны и вылетаю...
← →
sniknik © (2010-08-18 12:52) [8]> и вылетаю...
куда? если на канары, в отпуск, например то хорошо... пришли код по которому можно также вылететь.
← →
A_Ton © (2010-08-18 12:54) [9]Hdc:=CreateFile(PChar(SaveFDlg.FileName),GENERIC_WRITE,0,nil,
CREATE_NEW,FILE_FLAG_WRITE_THROUGH,0);
If Hdc=0 then Begin
MessageBox(Handle,"Не могу открыть файл для копии!","Ошибка",MB_ICONERROR);
Exit; end;
ShowMessage("Cozdan!");
for i:= 0 to NFrames-1 do begin
if (i>=FrStPos) and (i<=FrEndPos) then continue;
RdKadr(i);
WriteFile(Hdc,RecFile,SizeOf(RecFile),bytesWritten, nil);
Application.ProcessMessages;
if (i mod 5 =0) then VTrBar.Position:=i;
end;
CloseHandle(Hdc);
← →
brother © (2010-08-18 12:54) [10]> пришли код по которому можно также вылететь
) он его хорошо спрятал! А хочет - халявного прогера заиметь ;)
← →
brother © (2010-08-18 12:57) [11]> [9] A_Ton © (18.08.10 12:54)
какие-то "ошметки" кода...
← →
A_Ton © (2010-08-18 12:59) [12]
> какие-то "ошметки" кода...
> <Цитата>
Вероятно Вы мало что понимаете в работе с фаёлами. Для тех кто соображает этого фрагмента вполне хватит чтобы подсказать хотя бы на уровне идеи...
← →
brother © (2010-08-18 13:00) [13]> Вероятно Вы мало что понимаете в работе с фаёлами.
Видимо мало...
← →
Игорь Шевченко © (2010-08-18 13:01) [14]
> Для тех кто соображает этого фрагмента вполне хватит чтобы
> подсказать хотя бы на уровне идеи...
Подсказываю:
1. Убавь наглость
2. Смени деятельность
← →
A_Ton © (2010-08-18 13:02) [15]
> Подсказываю:
> 1. Убавь наглость
> 2. Смени деятельность
А по сути не копенгаген?
← →
Игорь Шевченко © (2010-08-18 13:04) [16]
> А по сути не копенгаген?
вполне копенгаген. но не ведусь
← →
A_Ton © (2010-08-18 13:07) [17]Удалено модератором
← →
brother © (2010-08-18 13:07) [18]http://www.yakimchuk.ru/questions.htm
← →
A_Ton © (2010-08-18 13:09) [19]Удалено модератором
← →
brother © (2010-08-18 13:11) [20]
Когда спрашиваете о коде
Даже и не просите других отладить ваш неработающий код, без какого-либо описания проблемы, которую должны найти. Отправка нескольких сотен строк кода со словами: «Чего-то у меня не работает», будет проигнорирована. Лучше отправить десяток строк кода со словами: «после 7-ой строки я ожидал увидеть <x>, но вместо этого получил <y>», и скорее всего ответ вы получите.
Если вы хотите, чтобы ваш код просто посмотрели, дали ему оценку, на забудьте указать какие именно куски кода необходимо посмотреть и почему.
← →
A_Ton © (2010-08-18 13:14) [21]Удалено модератором
← →
A_Ton © (2010-08-18 13:17) [22]Удалено модератором
← →
brother © (2010-08-18 13:21) [23]Удалено модератором
← →
A_Ton © (2010-08-18 13:24) [24]Удалено модератором
← →
RWolf © (2010-08-18 13:24) [25]
> A_Ton © (18.08.10 12:14)
> Запись типизированных файлов больше 2 гиг
> A_Ton © (18.08.10 12:54) [9]
> Hdc:=CreateFile(PChar(SaveFDlg.FileName),GENERIC_WRITE,0,nil,
> CREATE_NEW,FILE_FLAG_WRITE_THROUGH,0);
Но ведь это же не типизированный файл.
← →
brother © (2010-08-18 13:25) [26]Согласен с [14]
← →
A_Ton © (2010-08-18 13:28) [27]
> Но ведь это же не типизированный файл.
Спасибо! Можно пояснить чайнику? А как надо?
← →
A_Ton © (2010-08-18 13:31) [28]
> Но ведь это же не типизированный файл.
Hd:=CreateFile(PChar(CrrDatFName),GENERIC_READ,0,nil,
OPEN_EXISTING,FILE_FLAG_WRITE_THROUGH,0);
Для чтения. Прекрасно работает до 4Гб !
← →
RWolf © (2010-08-18 13:35) [29]и больше работает — WinAPI всё-таки.
в чём затруднение-то? если в позиционировании, то см. SetFilePos.
← →
A_Ton © (2010-08-18 13:37) [30]
> в чём затруднение-то? если в позиционировании, то см. SetFilePos.
Если бы я это знал... Создаёт файл, пашет некоторое время и вылетает. На выходе создан файл 0 байт.
← →
A_Ton © (2010-08-18 13:39) [31]
> SetFilePos
Это не работает, всё не так просто...
← →
RWolf © (2010-08-18 13:40) [32]
> RWolf © (18.08.10 13:35) [29]
SetFilePointer, я хотел сказать.
← →
A_Ton © (2010-08-18 13:42) [33]
> SetFilePointer, я хотел сказать.
Вы точно коллега, честное спасибо! Но нужен типовой код от мастера...
И статейка бы не помешала... А то только про текстовые файлики пишут ;-(
← →
A_Ton © (2010-08-18 13:55) [34]Удалено модератором
← →
Игорь Шевченко © (2010-08-18 14:07) [35]все работает, файлы создаются и больше 2-х гиг и больше 4-х гиг.
Читайте справку, выпрямляйте руки.
← →
A_Ton © (2010-08-18 14:11) [36]
> все работает, файлы создаются и больше 2-х гиг и больше
> 4-х гиг.
Всё это что? И про справку уточните - Где читать????
← →
Игорь Шевченко © (2010-08-18 14:34) [37]A_Ton © (18.08.10 14:11) [36]
> Всё это что?
Всё - это про то, что файлы сказанного размера создаются при помощи CreateFile и WriteFile. Справку тоже надо по ним читать. Обрабатывать неудачный результат работы функции, получать больше информации, думать над ней.
← →
RWolf © (2010-08-18 14:34) [38]Delphi: Help — Windows SDK; SetFilePointer, CreateFile и т. п.
← →
A_Ton © (2010-08-18 14:40) [39]
> Всё - это про то, что файлы сказанного размера создаются
> при помощи CreateFile и WriteFile.
Это инфа для студенток из литературного колледжа ;=))))
Пример в студию!
← →
A_Ton © (2010-08-18 14:46) [40]
> Всё - это про то, что файлы сказанного размера создаются
> при помощи CreateFile и WriteFile.
Люди работающие над серьёзными проектами в промышленности такую фигню не используют... У меня видео с данными в одном фрейме - легко ваш код уложу при Вашей неаккуратности....
← →
grammar-nazi (2010-08-18 14:50) [41]
> A_Ton © (18.08.10 14:46) [40]
что-то я подозреваю, что люди, "работающие над серьёзными проектами в промышленности", знают разницу между паскалевским типизированным файлом и файлом-объектом ядра.
← →
A_Ton © (2010-08-18 14:54) [42]
> разницу между паскалевским типизированным файлом и файлом-
> объектом ядра
В данном случае НЕТ - сейчас это не нужно!
← →
antonn © (2010-08-18 15:17) [43]integer?
← →
Игорь Шевченко © (2010-08-18 15:18) [44]
> Пример в студию!
У тебя денег-то хватит, чудо ?
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.11.14;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.004 c