مجرد تطبيقه على التشارت--سيفتح ملف الاكسل فورا
والان انت ارتحت من تخبط معرفة الوسيط ومظنة الخطأ والاجتهادات---الآن لايهمك معرفة الوسيط!! التشارت يعرف!!
http://www7.0zz0.com/2017/11/30/07/777953135.png
Printable View
مجرد تطبيقه على التشارت--سيفتح ملف الاكسل فورا
والان انت ارتحت من تخبط معرفة الوسيط ومظنة الخطأ والاجتهادات---الآن لايهمك معرفة الوسيط!! التشارت يعرف!!
http://www7.0zz0.com/2017/11/30/07/777953135.png
النتيجة هكذا:
http://www7.0zz0.com/2017/11/30/07/777953135.png
كود PHP:extern string filename="Market.xls";
extern string ExcelSheetName = "PipsValue";
extern int myExcel=0;
#import "excellinkW.dll"
int ExcelStart(string,int);
string ExcelVersion();
int ExcelPutString(int,int,int,string);
int ExcelPutValue(int,int,int,double);
int ExcelFormatCellColor(int,int,int,int,int);
int ExcelFormatCellFontSize(int,int,int,int);
int ExcelFormatCellFont(int,int,int,int);
double ExcelGetValue(int,int,int);
string ExcelGetString(int,int,int);
int ExcelSaveFile(string);
int ExcelSheetRename(int, string);
int ExcelPutCalc(int,int,int,string);
string ExcelGetCalc(int,int,int,string);
int ExcelEnd();
int ExcelClose();
int ExcelFreeString();
string ExcelCell(int,int);
int ExcelUnixTime();
#import
string pairs[];
int TotalPairs;
int OnInit()
{
EventSetTimer(5);
myExcel = ExcelStart(filename,1);
ExcelSheetRename(1,ExcelSheetName);
int j=-1;
for(int i=0;i<SymbolsTotal(true);i++)
{
j++;
ArrayResize(pairs,j+1);
pairs[j]=SymbolName(i,true);
}
TotalPairs=SymbolsTotal(true);
return(INIT_SUCCEEDED);
}
void OnTimer()
{
if( TotalPairs != SymbolsTotal(true) ) OnInit();
if (myExcel>=0)
{
for(int i=0 ; i<TotalPairs ; i++)
{
ExcelPutString(1 , i+2 , 1 , pairs[i]);
ExcelPutValue( 1 , i+2 , 2 , MarketInfo(pairs[i],MODE_TICKVALUE));
ExcelPutValue( 1 , i+2 , 3 , MarketInfo(pairs[i],MODE_MARGINREQUIRED)/10.0);
}
}
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
ExcelSaveFile(filename);
ExcelEnd();
EventKillTimer();
}
افترض كان عدد الأزواج 30
ثم اصبحت 25!!
ونحن قلنا انه سيحتفظ بما سبق؟؟ ما الحل؟؟
ج: نظيف كود يملأ قيم فارغة في الخلال المزاحة من اسفل!
على النحو التالي:
السلام عليكم ورحمة الله تعالى وبركاته
موضوع مميز كالعادة :015:
لكن بعض الأمور لم أفهمها فأرجو توضيحها لو سمحت أخي الفيلسوف :
============
1
أليس من المفترض أن نضع فيها مسار الملف ؟ لماذا وضعت أنت اسم الملف ؟كود PHP:int ExcelStart(string,int);
أصلا الملف غير موجود إطلاقا فعلى أي أساس يحدد مساره وينشئه ؟
============
2
هل حصرا يجب أن يكون الملف من إمتداد xls أو csv
لأن إمتداد الإكسل الأصلي xlsx
============
3
المتغير
مافائدته ولماذا هو خارجي ؟كود PHP:extern int myExcel=0;
============
4
حسب مافهمت من الكود أنه عند إزالة الاكسبرت من على الشارت فإن الاكسبرت يقوم بحفظ الملف ثم يغلقه
قام بالحفظ لكن لم يغلقه
طبعا الكود نسخ ولصق من الكود الذي وضعته أنت في الصفحة الأولى حتى الآن لم أغير شيء فيه
============
5
إن كنت أريد نقل تاريخ مع وقت شمعة معينة كيف أنقله
لاني لا أرى متغير datetime في التعريفات !!
إن كنت سأستخدم TimeToString فكما تعرف سينقل إما ساعة فقط أو تاريخ فقط
وشكرا لك مقدما :eh_s(7):
اول تطبيق :asvc:
إن قمت بتغيير تنسيق الخلايا بشكل يدوي لامشكلة صحيح ؟؟كود PHP:void OnTick()
{
if(Open[0]>Close[0])ExcelFormatCellColor(1,5,5,clrWhite,clrRed);
if(Open[0]<Close[0])ExcelFormatCellColor(1,5,5,clrWhite,clrGreen);
}
كإرتفاع الصفوف وعرض الأعمدة مثلا
مرحبا اخي
اكثر اسئلتك حتى لو اجبتها سابقا ولكن الجواب اليقين عند التجربة او عند اسامة---
مايخص
1) اسم الملف دون مسار---اعتقد سيضعه في الديفولت لوكيشن للمستندات--نحتاج نجرباقتباس:
أليس من المفترض أن نضع فيها مسار الملف ؟ لماذا وضعت أنت اسم الملف ؟
أصلا الملف غير موجود إطلاقا فعلى أي أساس يحدد مساره وينشئه ؟
============
2
هل حصرا يجب أن يكون الملف من إمتداد xls أو csv
لأن إمتداد الإكسل الأصلي xlsx
2) xls ملفات اكسل 2010 على ما اعتقد ولكن تستطيع ان تضع اي امتداد يقبله الاكسل
3) اذا كان الملف غير موجود ينشئه في الديفولت لوكيشن-على ما اعتقد
myExcel=0; اتوقع فلاق flag للاكسل---اذا 0 غير موجود او لم يستطيع انشؤه-- مثلا ماعندك في جهازك برنامج اكسل-وبالتالي لايمكن الكتابة اليه او 1 ومعناها نجح في ايجاد الملف
او العكس
---
وبناء عليه اذا الفلاق اكبر من 0 -- الملف موجود وبالتالي تستطيع النقل اليه
لا اخي ينقل لاي تايم فريماقتباس:
إن كنت سأستخدم TimeToString فكما تعرف سينقل إما ساعة فقط أو تاريخ فقط
ولكن ان كنت تقصد نقل عدد الثواني التي مرت حولها الى int من datetime مع الحرص ان عدد الثواني اقل من او يساوي حد int العلوي
وجرب long ممكن تمشي---هذه الاسئلة مصممي المكتبة يعرفون--نحن من خلال التجربة نفحص
بقية الاسئلة لابد اسامة او التجربة
او ممكن نقله للاكسل كتاريخ ثم تحويله من هناك--اعتقد يمكن--اذا كنت تبحيث عن الثواني---رغم انه بالتاريخ ممكن ينقل لك حتى الثواني على صيغة hh:mm:ss:mm
مشكور أخي ماقصرت :eh_s(7):
بخصوص هذه الجزئية
أنا جربت فعلا نقل التايم لكن ظهر في الاكسل على شكل رقم عشري هكذا 1485770400 غيرت تنسيق الخلايا في الاكسل لتاريخ مامشي الحال ولوقت أيضا مامشي الحال
اللعبة حتكون في الاكسبرت ونقل المتغير كنص
لان تعريفات المكتبة كلها يا إما int او string او double
في الأعلى أنا لا أقصد التايم فريم كنت أقصد عندما نحول التايم لنص باستخدام TimeToString سيكون لها شكل من الاشكال التالية :
لكن التايم بالاساس يكون شكله هكذاكود PHP:TimeToString(Time[i],TIME_DATE)
TimeToString(Time[i],TIME_MINUTES)
TimeToString(Time[i],TIME_SECONDS)
الملف المرفق 480814
فهل يمكن نقله بهذا الشكل للاكسل ؟ هذا ما أريده لكن كما ذكرت لكم خبرتي في الدوال الخاصة بالتايم ضعيفة جدا ولا أعرف بشكل جيد كيف تعمل
وبارك الله في جهودكم جميعا
لاحظ الاكسل ينقل نفس اللي ممكن تحطه على التشارت--اذن الاكسل عريض الوساد!
يعني الانتقر عنده يتقبل قيم بخانات اكثر من 10
راجع موضوع دردشة عامة عن عيوب int ---
لو غيرت السابق من datetime الى int ثم نقلته ستكون االنتيجة خطأ
http://www13.0zz0.com/2017/11/30/21/283993219.png
اذا تبي المللي سكندز - اعتقد الافضل تنقلها ديت-تايم للاكسل ومن هناك تحولها الى الصيغة التي نريدها