WINAPI
在论坛上搜索,有很多例子
qjol:
WINAPI
在论坛上搜索,有很多例子
你好,谢谢你的回答,但是我想把数据写成csv格式,而我看到的所有例子都是文本格式的,你能不能帮助我如何得到这些数据?
ankityadav:
谢谢你的回答,但我想把数据写成csv格式,而我看到的所有例子都是文本格式的,你能不能帮助我如何获得这个格式?
谢谢你的回答,但我想把数据写成csv格式,而我看到的所有例子都是文本格式的,你能不能帮助我如何获得这个格式?
首先让它工作。然后你就会知道接下来该怎么做。
deysmacro:
首先让它发挥作用。然后你就会知道下一步该怎么做。
首先让它发挥作用。然后你就会知道下一步该怎么做。
谢谢你的回答,但当我试图从不同的文件夹中读取文件并写入文件时,它却无法工作。
//+------------------------------------------------------------------+ //| File Read Write.mq4 | //| Copyright © 2008, MetaQuotes Software Corp. | //| http://www.metaquotes.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" // êîíñòàíòû äëÿ ôóíêöèè _lopen #define OF_READ 0 #define OF_WRITE 1 #define OF_READWRITE 2 #define OF_SHARE_COMPAT 3 #define OF_SHARE_DENY_NONE 4 #define OF_SHARE_DENY_READ 5 #define OF_SHARE_DENY_WRITE 6 #define OF_SHARE_EXCLUSIVE 7 #import "kernel32.dll" int _lopen (string path, int of); int _lcreat (string path, int attrib); int _llseek (int handle, int offset, int origin); int _lread (int handle, string buffer, int bytes); int _lwrite (int handle, string buffer, int bytes); int _lclose (int handle); #import // _lopen : Îòêpûâàåò óêàçàííûé ôàéë. Âîçâpàùàåò: îïèñàòåëü ôàéëà. // _lcreat : Ñîçäàåò óêàçàííûé ôàéë. Âîçâpàùàåò: îïèñàòåëü ôàéëà. // _llseek : Óñòàíàâëèâàåò óêàçàòåëü â îòêpûòîì ôàéëå. Âîçâpàùàåò: // íîâîå ñìåùåíèå óêàçàòåëÿ. // _lread : Ñ÷èòûâàåò èç îòêpûòîãî ôàéëà óêàçàííîå ÷èñëî áàéò. // Âîçâpàùàåò: ÷èñëî ñ÷èòàííûõ áàéò; 0 - åñëè êîíåö ôàéëà. // _lwrite : Çàïèñûâàåò äàííûå èç áóôåpà â óêàçàííûé ôàéë. Âîçâpàùàåò: // ÷èñëî çàïèñàííûõ áàéò. // _lclose : Çàêpûâàåò óêàçàííûé ôàéë. Âîçâpàùàåò: 0. //  ñëó÷àå íåóñïåøíîãî çàâåpøåíèÿ âñå ôóíêöèè âîçâðàùàþò çíà÷åíèå // HFILE_ERROR=-1. // path : Ñòpîêà, îïpåäåëÿþùàÿ ïóòü è èìÿ ôàéëà. // of : Ñïîñîá îòêðûòèÿ. // attrib : 0 - ÷òåíèå èëè çàïèñü; 1 - òîëüêî ÷òåíèå; 2 - íåâèäèìûé èëè // 3 - ñèñòåìíûé. // handle : Ôàéëîâûé îïèñàòåëü. // offset : ×èñëî áàéò, íà êîòîpîå ïåpåìåùàåòñÿ óêàçàòåëü. // origin : Óêàçûâàåò íà÷àëüíóþ òî÷êó è íàïpàâëåíèå ïåpåìåùåíèÿ: 0 - // âïåpåä îò íà÷àëà; 1 - ñ òåêóùåé ïîçèöèè; 2 - íàçàä îò êîíöà ôàéëà. // buffer : Ïpèíèìàþùèé/çàïèñûâàåìûé áóôåp. // bytes : ×èñëî ñ÷èòûâàåìûõ áàéò. // Ñïîñîáû îòêðûòèÿ (ïàðàìåòð of): // int OF_READ =0; // Îòêðûòü ôàéë òîëüêî äëÿ ÷òåíèÿ // int OF_WRITE =1; // Îòêðûòü ôàéë òîëüêî äëÿ çàïèñè // int OF_READWRITE =2; // Îòêðûòü ôàéë â ðåæèìå çàïèñü/÷òåíèå // int OF_SHARE_COMPAT =3; // Îòêðûâàåò ôàéë â ðåæèìå îáùåãî // ñîâìåñòíîãî äîñòóïà.  ýòîì ðåæèìå ëþáîé ïðîöåññ ìîæåò îòêðûòü äàííûé // ôàéë ëþáîå êîëè÷åñòâî ðàç. Ïðè ïîïûòêå îòêðûòü ýòîò ôàéë â ëþáîì äðóãîì // ðåæèìå, ôóíêöèÿ âîçâðàùàåò HFILE_ERROR. // int OF_SHARE_DENY_NONE =4; // Îòêðûâàåò ôàéë â ðåæèìå îáùåãî äîñòóïà // áåç çàïðåòà íà ÷òåíèå/çàïèñü äðóãèì ïðîöåññàì. Ïðè ïîïûòêå îòêðûòèÿ // äàííîãî ôàéëà â ðåæèìå OF_SHARE_COMPAT, ôóíêöèÿ âîçâðàùàåò HFILE_ERROR. // int OF_SHARE_DENY_READ =5; // Îòêðûâàåò ôàéë â ðåæèìå îáùåãî äîñòóïà ñ // çàïðåòîì íà ÷òåíèå äðóãèì ïðîöåññàì. Ïðè ïîïûòêå îòêðûòèÿ äàííîãî ôàéëà // ñ ôëàãàìè OF_SHARE_COMPAT è/èëè OF_READ èëè OF_READWRITE, ôóíêöèÿ // âîçâðàùàåò HFILE_ERROR. // int OF_SHARE_DENY_WRITE=6; // Òîæå ñàìîå, òîëüêî ñ çàïðåòîì íà çàïèñü. // int OF_SHARE_EXCLUSIVE =7; // Çàïðåò òåêóùåìó è äðóãèì ïðîöåññàì íà // äîñòóï ê ýòîìó ôàéëó â ðåæèìàõ ÷òåíèÿ/çàïèñè. Ôàéë â ýòîì ðåæèìå ìîæíî // îòêðûòü òîëüêî îäèí ðàç (òåêóùèì ïðîöåññîì). Âñå îñòàëüíûå ïîïûòêè // îòêðûòèÿ ôàéëà áóäóò ïðîâàëåíû. //+------------------------------------------------------------------+ //| ïðî÷èòàòü ôàéë è âåðíóòü ñòðîêó ñ ñîäåðæèìûì | //+------------------------------------------------------------------+ int start() { //---- string buffer=ReadFile("C:\Documents and Settings\Administrator\My Documents\Downloads\test.txt"); int count=StringLen(buffer); Print("Ïðî÷èòàíî áàéò:",count); WriteFile("C:\Documents and Settings\Administrator\My Documents\Downloads\test2.txt",buffer); //---- return(0); } string ReadFile (string path) { int handle=_lopen (path,OF_READ); if(handle<0) { Print("Îøèáêà îòêðûòèÿ ôàéëà ",path); return (""); } int result=_llseek (handle,0,0); if(result<0) { Print("Îøèáêà óñòàíîâêè óêàçàòåëÿ" ); return (""); } string buffer=""; string char1="x"; int count=0; result=_lread (handle,char1,1); while(result>0) { buffer=buffer+char1; char1="x"; count++; result=_lread (handle,char1,1); } result=_lclose (handle); if(result<0) Print("Îøèáêà çàêðûòèÿ ôàéëà ",path); return (buffer); } //+------------------------------------------------------------------+ //| çàïèñàòü ñîäåðæèìîå áóôåðà ïî óêàçàííîìó ïóòè | //+------------------------------------------------------------------+ void WriteFile (string path, string buffer) { int count=StringLen (buffer); int result; int handle=_lopen (path,OF_WRITE); if(handle<0) { handle=_lcreat (path,0); if(handle<0) { Print ("Îøèáêà ñîçäàíèÿ ôàéëà ",path); return; } result=_lclose (handle); } handle=_lopen (path,OF_WRITE); if(handle<0) { Print("Îøèáêà îòêðûòèÿ ôàéëà ",path); return; } result=_llseek (handle,0,0); if(result<0) { Print("Îøèáêà óñòàíîâêè óêàçàòåëÿ"); return; } result=_lwrite (handle,buffer,count); if(result<0) Print("Îøèáêà çàïèñè â ôàéë ",path," ",count," áàéò"); result=_lclose (handle); if(result<0) Print("Îøèáêà çàêðûòèÿ ôàéëà ",path); } //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+
C:\Documents and Settings\Administrator\My Documents\Downloads\test.txt只要改变目录到C:\\,并确保test.txt是由你创建的。
deysmacro:
只要改变目录到C:\\,并确保test.txt是由你创建的。
只要改变目录到C:\\,并确保test.txt是由你创建的。
我不明白,我把它放在了下载文件夹里,我已经创建了两个文件,但没有工作,我不明白你在说什么?
谢谢,但我不明白,以前我用内核,现在用Winfile ????。
gooly:
看过吗?搜索kernel32。
看过吗?搜索kernel32。
谢谢你,我已经搜索过了,但你能让我知道在任何文件夹中的csv文件中的flie读写操作的例子吗?
大家好,请帮助我如何从外部文件夹读写文件,能不能给我看一些小代码,让我明白?
谢谢