Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];

Вниз

Записать-прочитать файл под WinApi   Найти похожие ветки 

 
Vemer ©   (2009-01-28 08:48) [0]

Подскажите в какую сторону смотреть, чтобы записать-прочитать файл длиной  2-4 байта под WinApi?


 
KSergey ©   (2009-01-28 09:06) [1]

HFILE OpenFile(
   LPCSTR lpFileName, // pointer to filename
   LPOFSTRUCT lpReOpenBuff, // pointer to buffer for file information  
   UINT uStyle // action and attributes
  );


 
clickmaker ©   (2009-01-28 10:33) [2]

CreateFile()
ReadFile, WriteFile


 
Юрий Зотов ©   (2009-01-28 17:14) [3]

Только непонятно, почему именно через WinAPI. Родные Паскалевские AssignFile, Reset/Rewrite, Read/Write, CloseFile ничем не хуже, но проще в использовании.


 
KilkennyCat ©   (2009-01-28 18:25) [4]


> Юрий Зотов ©   (28.01.09 17:14) [3]


Потому что под ними 2-4 байта не получается. Под апишными тож не получится, но автор надеется...


 
Vemer ©   (2009-01-28 20:18) [5]

Иди убивай Кенни дальше если ниче умного сказать не можешь.

А WinApi потому что пришу без VCL.


 
Leonid Troyanovsky ©   (2009-01-28 20:30) [6]


> Vemer ©   (28.01.09 20:18) [5]

> А WinApi потому что пришу без VCL.

Чего ж себя так мучить, мы ж не при царском режиме.
И TFileStream заказан?

--
Regards, LVT.


 
palva ©   (2009-01-28 20:50) [7]


> А WinApi потому что пришу без VCL.

Можно обойтись без WinApi не используя VCL. Единственная причина, которую могу придумать, это то что нужны юникодные имена файлов, или файл очень длинный с длиной, которая не помещается в 32 бита.


 
Jeer ©   (2009-01-28 20:55) [8]


> Подскажите в какую сторону смотреть,


В зависимости от твоего вероисповедования.


 
Jeer ©   (2009-01-28 20:58) [9]


> или файл очень длинный с длиной, которая не помещается в
> 32 бита.


Во как, оказывается - файл длиннее 32 бит сегодня считается очень длинным.
Пожалуй, надо снести у себя все файлы длиннее 32 бит - непорядок, выбиваюсь :)


 
Palladin ©   (2009-01-28 22:13) [10]


> Vemer ©  (28.01.09 20:18) [5]

я чет не понял, каким боком родные Паскалвские методы относятся к VCL. Да и TFileStream относится к базовым классам, а не к VCL как таковой.


 
Palladin ©   (2009-01-28 22:13) [11]

Удалено модератором
Примечание: дубль


 
KilkennyCat ©   (2009-01-29 01:09) [12]


> Vemer ©   (28.01.09 20:18) [5]


Иди изучай английский. В моем нике нет "убийства".


 
Германн ©   (2009-01-29 02:07) [13]


> Иди изучай английский. В моем нике нет "убийства".
>

Фонетически есть. :)


 
KilkennyCat ©   (2009-01-29 09:03) [14]


> Германн ©   (29.01.09 02:07) [13]

При богатой (больной) фантазии можно увидеть(услышать) что угодно.


 
Anatoly Podgoretsky ©   (2009-01-29 09:18) [15]

> Германн  (29.01.2009 2:07:13)  [13]

Убить кота Кенни


 
KilkennyCat ©   (2009-01-29 09:47) [16]


> Anatoly Podgoretsky ©   (29.01.09 09:18) [15]

И даже это вариантно:
Кота по кличке Кенни?
Кота, принадлежащего Кенни?


 
Palladin ©   (2009-01-29 09:53) [17]

УбиКенниКот :)


 
KilkennyCat ©   (2009-01-29 09:57) [18]


> Palladin ©   (29.01.09 09:53) [17]

Чувствуется умение правильно называть переменные :)


 
Anatoly Podgoretsky ©   (2009-01-29 10:42) [19]

> KilkennyCat  (29.01.2009 9:47:16)  [16]

Никаких вариантов, кота жалко.


 
Palladin ©   (2009-01-29 11:05) [20]


> KilkennyCat ©   (29.01.09 09:57) [18]

С этим вообще проблем нет

var
 f,t,e,c:Integer;
 r,y,aa,be:String;
 ttt,w777,f:Boolean;
 kfr,kr:TList;
 PeremennayaDlyaCiklaFor:Integer;


^)


 
Юрий Зотов ©   (2009-01-29 11:37) [21]

> Vemer ©   (28.01.09 20:18) [5]

> А WinApi потому что пишу без VCL.

Писать без VCL - это еще не значит обязательно использовать WinAPI. Никто не мешает писать и без VCL, и без WinAPI.

Все перечисленные в [3] функции содержатся в модуле System - то есть, это функции из библиотеки самого ЯЗЫКА и к VCL они не имеют никакого отношения. Так что можете их использовать - тем более, что модуль System будет подключен к Вашей программе в любом случае.


 
Vemer ©   (2009-01-29 20:06) [22]

Спасибо всем за ответы, начал мучить OpenFile )).

Зачем мне это надо - просто налабал на WinAPi для себя часики на рабочий стол поверх всех окон. Под VCL тот же код глючит страшно. Вот теперь буду пытаться научить их сохранять свое местоположение.


 
clickmaker ©   (2009-01-29 20:10) [23]

> Вот теперь буду пытаться научить их сохранять свое местоположение

а зачем для этого OpenFile?
RegOpenKeyEx, RegSetValueEx
или WritePrivateProfileString


 
Ega23 ©   (2009-01-29 20:20) [24]


> Под VCL тот же код глючит страшно.


"Меня терзают смутные сомнения..." (с)


 
Vemer ©   (2009-01-29 22:12) [25]

Ну не хочу я в реестр лезть из-за таких мелочей  :).
Там и так мусора немало.
А программа, написанная на VCL с прозрачной формой и отрисовкой в ее в канвасе действительно глючит.


 
Eraser ©   (2009-01-29 22:14) [26]

> [25] Vemer ©   (29.01.09 22:12)
> Ну не хочу я в реестр лезть из-за таких мелочей

а куда собрался? может ну его... не надо? ;-)


 
Германн ©   (2009-01-30 00:47) [27]


> Vemer ©   (29.01.09 22:12) [25]
>
> Ну не хочу я в реестр лезть из-за таких мелочей  :).


> Вот теперь буду пытаться научить их сохранять свое местоположение.

Значит потом будешь терзать форум вопросами типа "Почему не могу сохранить файл в такую-то папку?"


 
KilkennyCat ©   (2009-01-30 01:30) [28]

Если только местоположение, то:
1. Реестру хуже не будет.
2. Если без реестра , то отдельный файл не нужен.


 
Vemer ©   (2009-01-30 01:33) [29]

Короче, всем спасибо, научил часики сохранять 8 байт в файл.
файл создается в собственной папке.

Прогу я больше для себя писал.
На выходных OpenGL может прикручу к ней, выводить его в прозрачное окно уже умею)).

To Германн
на forum.sources.ru мне тоже самое сказали )). Там человек поставил Read Only на Program Files зачем-то )).

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


 
Германн ©   (2009-01-30 01:49) [30]


> To Германн
> на forum.sources.ru мне тоже самое сказали )). Там человек
> поставил Read Only на Program Files зачем-то )).
>
> Если прога не может создать файл в собственной папке - это
> уже проблемы пользователя компа.
>

А насчет этого ты проконсультируйся у MS. Ты как и многие - заложник MS-Windows. Как ни крути. :(
А когда приспичит, то и тут получишь! :)


 
AndreyV ©   (2009-01-30 05:56) [31]

> [30] Германн ©   (30.01.09 01:49)
> > Если прога не может создать файл в собственной папке - это
> > уже проблемы пользователя компа.
>
> А насчет этого ты проконсультируйся у MS. Ты как и многие
> - заложник MS-Windows. Как ни крути. :(
> А когда приспичит, то и тут получишь! :)

Переведу.
Для хранения настроек был придуман реестр , а потом специальные папки; не каждая ОС или пользователь даст писать (ударение выбери сам) в папку с исполняемыми файлами.


 
Vemer ©   (2009-01-30 11:09) [32]

Нашел пример как находить AppData folder.
До сего момента я даже не знал что оно существует  :o.
Просто работал с БД больше, а там вопрос "где хранить" не возникает :D.


 
koha!   (2009-02-01 05:47) [33]


> Юрий Зотов ©   (29.01.09 11:37) [21]
> > Vemer ©   (28.01.09 20:18) [5] Все
> перечисленные в [3] функции содержатся в модуле System -
>  то есть, это функции из библиотеки самого ЯЗЫКА и к VCL
> они не имеют никакого отношения. Так что можете их использовать
> - тем более, что модуль System будет подключен к Вашей программе
> в любом случае.


Вот интересно, а они эти функции являются обвертками АПИ функций?


 
Anatoly Podgoretsky ©   (2009-02-01 12:15) [34]

> koha!  (01.02.2009 5:47:33)  [33]

Ты думаешь разработчики идиоты, что будут писать свои драйвера, АПИ лишь бы не работать с АПИ, не они умнее. Все, абсолютно все операции делаются исключительно только через несложные обертки.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.53 MB
Время: 0.044 c
15-1232373798
TCrash
2009-01-19 17:03
2009.03.29
.bat скопировать ОДИН файл


4-1207047506
kolj
2008-04-01 14:58
2009.03.29
Tapi -> CallBackFunction


15-1232646153
AlexDan
2009-01-22 20:42
2009.03.29
Простые числа и пятница.


4-1207309857
DiamondShark
2008-04-04 15:50
2009.03.29
Как узнать, что приложение запущено в терминальной сессии?


2-1233134263
DeadMeat
2009-01-28 12:17
2009.03.29
New vs GetMem





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский