בסדר. בפרוייקט הזה הצלחתי ב"ה.
תודה לדוד על ההדרכה המפורטת!
פורסם במקור בפורום CODE613 ב05/04/2017 18:23 (+03:00)
בסדר. בפרוייקט הזה הצלחתי ב"ה.
תודה לדוד על ההדרכה המפורטת!
פורסם במקור בפורום CODE613 ב05/04/2017 18:23 (+03:00)
בזמן האחרון, ניסיתי לקבל את אנשי הקשר מהפלאפון למחשב,דרך פקודות GSM.
זה אומר ששולחים לפלאפון פקודה דרך יציאת קום, והוא מבצע.
את יציאת הקום אפשר ליצור דרך הבלוטוס'.
לדוגמא: להוצאת שיחה, אפשר לשלוח את הפקודה הבאה:
ATD*2800;
ואחריה "אנטר", והפלאפון יחייג למספר *2800.
לקבלת אנשי הקשר, יש לשלוח את הקוד הזה:
AT+CSCS="UCS2";+CPBS="ME";+CPBR=1,1000
(הפקודה הראשונה, מגדירה אותו על פורמט UCS2, שהוא היחיד שתומך בעברית כדלהלן,
הפקודה השנייה מגדירה אותו על אנשי הקשר של זיכרון הפלאפון, ולא הסים,
הפקודה השלישית מבקשת את אנשי הקשר, מ1, עד 1000.)
כשניסיתי לקבל את אנשי הקשר, גיליתי שבעברית, הפורמט היחיד שהוא תומך זה UCS2.
בשאר הפורמטים, הגיעו סימני שאלה וכו'.
אבל הוא היה משהו כזה:
05DE05E605E405D4002005DC05D205D305D505DC
כשניסיתי ליצור איש קשר חדש עם הקוד הנ"ל, נוצר איש קשר בשם "מצפה לגדול".
ואז ניסיתי להבין איך זה עובד.
ניסיתי לחפש על הפורמט הזה, ולא מצאתי שום קוד שעבד בפועל.
בסוף הבנתי שזה מחולק ליחידות בנות 4 תווים, וממילא זה הקוד ההקסדצימלי של תווי היונקוד.
להלן קוד ההצפנה והפיענוח:
פיענוח:
Function DecodingUCS2(str As String) As String
Dim Temp As String
Dim l, i, hexN As Long
l = Len(str)
Temp = ""
For i = 1 To l Step 4
'המרת המספר מהקסדצימלי, לדצימלי
hexN = Val("&h" & Mid(str, i, 4))
'קבלת האות בפועל, וצירופה למחרוזת
Temp = Temp & ChrW(hexN)
Next
DecodingUCS2 = Temp
End Function
הצפנה:
Function EncodingUCS2(str As String) As String
Dim Temp As String
Dim l, i As Long
l = Len(str)
Temp = ""
For i = 1 To l
'הערך של תו היוניקוד
unN = AscW(Mid(str, i))
'המרה למספר הקסדצימלי
hexN = Hex(unN)
'השלמת המספר ל4 תווים, והוספה למחרוזת
Temp = Temp & Right$("0000" & hexN, 4)
Next
EncodingUCS2 = Temp
End Function
פורסם במקור בפורום CODE613 ב25/12/2017 01:40 (+02:00)
למה אתה משתמש בCURL?
אתה יכול להשתמש רק ב file_get_contents.
הפונקציה הזאת לא נועדה רק לקבל קבצים מקומים, אלא גם לתקשורת (אותה פעולה שעושה הCURL).
כך:
$file = 'files/song.mp3';
$body = file_get_contents($file);
$opts = array('http' => array(
'method' => 'POST',
'content' => $body,
'follow_location' => false) );
$context = stream_context_create($opts);
$url = 'https://www.a.co.il/';
$result = file_get_contents($url, FALSE, $context);
(רק צריך להתאים את צורת השליחה.
אתה תצטרך להשתמש במחלקה שתסדר את הבודי.
אני משתמש במחלקה הזאת:
class BodyPost
{
// part "multipart/form-data"
public static function PartPost($name, $val)
{
$body = 'Content-Disposition: form-data; name="' . $name . '"';
// check instance of oFile
if($val instanceof oFile)
{
$file = $val->Name();
$mime = $val->Mime();
$cont = $val->Content();
$body .= '; filename="' . $file . '"' . "\r\n";
$body .= 'Content-Type: ' . $mime ."\r\n\r\n";
$body .= $cont."\r\n";
} else $body .= "\r\n\r\n".$val."\r\n";
return $body;
}
public static function Get(array $post, $delimiter = '-------------0123456789')
{
if(is_array($post) && !empty($post))
{
$bool = true;
//foreach($post as $val) if($val instanceof oFile) {$bool = true; break; };
if($bool)
{
$ret = '';
foreach($post as $name=>$val)
$ret .= '--' . $delimiter. "\r\n". self::PartPost($name, $val);
$ret .= "--" . $delimiter . "--\r\n";
} else $ret = http_build_query($post);
} else throw new \Exception('Error input param!');
return $ret;
}
}
class oFile
{
private $name;
private $mime;
private $content;
public function __construct($name, $mime=null, $content=null)
{
if(is_null($content))
{
$info = pathinfo($name);
// check is exist and readable file
if(!empty($info['basename']) && is_readable($name))
{
$this->name = $info['basename'];
// get MIME
$this->mime = mime_content_type($name);
// load file
$content = file_get_contents($name);
if($content!==false)
{
$this->content = $content;
}
else
{
throw new Exception('Don`t get content - "'.$name.'"');
}
}
else
{
throw new Exception('Error param');
}
}
else
{
$this->name = $name;
if(is_null($mime)) $mime = mime_content_type($name);
$this->mime = $mime;
$this->content = $content;
};
}
public function Name() { return $this->name; }
public function Mime() { return $this->mime; }
public function Content() { return $this->content; }
}
ואז כך מתבצעת ההעלאה:)
$file = 'files/song.mp3';
$file = new oFile($file);
$delimiter = '----'.uniqid();
$body = BodyPost::Get($file, $delimiter);
$opts = array('http' => array(
'method' => 'POST',
'header' => 'Content-Type: multipart/form-data; boundary='.$delimiter,
'content' => $body,
'follow_location' => false) );
$context = stream_context_create($opts);
$url = 'https://www.a.co.il/';
$result = file_get_contents($url, FALSE, $context);
פורסם במקור בפורום CODE613 ב08/01/2018 14:05 (+02:00)
אפשר באקסס לקבץ אלמנטים (פריסה)
ואז כל אחד תופס 50% של המסך.
ואם מגדילים זה גדל, וכו'
פורסם במקור בפורום CODE613 ב02/04/2017 13:54 (+03:00)
הדברים האלה כן נתמכים באקסס 2010 ומעלה.
בגיליון המאפיינים חפש "עוגן אנכי" ו"עוגן אופקי"
אתה מעגן את האובייקט לקצה הטופס, ואם הטופס גדל, האובייקט גדל יחד איתו.
בפרוייקט לדוגמא שמגיע עם כל אקסס יש את זה, נסה.
בהצלחה.
פורסם במקור בפורום CODE613 ב31/03/2017 16:28 (+03:00)
אתה צודק, שכחתי משהו, שהפרמטר שמעבירים ל BodyPost::Get, צריך להיות מערך.
כזה:
<?php
$file = 'AA.txt';
$file = new oFile($file);
// מערך:
$body = array($file);
$delimiter = '----'.uniqid();
$body = BodyPost::Get($body, $delimiter);
$opts = array('http' => array(
'method' => 'POST',
'header' => 'Content-Type: multipart/form-data; boundary='.$delimiter,
'content' => $body,
'follow_location' => false) );
$context = stream_context_create($opts);
$url = 'https://www.a.co.il/';
$result = file_get_contents($url, FALSE, $context);
?>
פורסם במקור בפורום CODE613 ב11/01/2018 14:36 (+02:00)
כשאני שואל פה קלוץ קאשעס, לא נעים לי להטריח את המתכנתים הכבודים...
אולי לפתוח תת פורום, לשאלות מתחילים?
וכך גם ידעו לחפש שם המתחילים הבאים בסידרה, הדרכות מאפס.
פורסם במקור בפורום CODE613 ב06/04/2017 00:51 (+03:00)
טוב... בזה כבר אני מבין.
זה חברה שמאפשרת תפעול חינמי של מערכת תוכן (IVR) טלפונית.
היא נפתחה לראשונה ע"י יהודי חב"די שהקים את קו "נחייג ונשמע" של חב"ד, ואח"כ הורחבה למערכות תוכן חינמיות, ומכאן השם המעניין.
רוב קווי הווצאפון וכו' שלהם.
ויש אפשרות לתכנות חלקי של המערכות.
פורסם במקור בפורום CODE613 ב31/03/2017 15:03 (+03:00)
תודה רבה!!
יש לי בימות המשיח מערכת שמוכרת מוצרים, ואני צריך שהיא תקריא את הנתונים.
בניתי קובץ באקסס שמוריד את הקובץ משם, ומכניס אותו לטבלה.
עכשיו הוא לכל רשומה מוציא פלט שכתוב: X הזמין Z מוצרים. ס"ה לתשלום Y.
את הפלט הזה הוא מייצא לקבצי XXX.tts (קבצי הקראה בעברית ע"י רובוט במערכות 'ימות').
את זה אני צריך להעלות לבד בFTP.
אני רוצה שיהיה סקריפט שעושה את כל זה בלחיצת כפתור.
ואולי אפ' אוטומטי כל כמה דקות (ונשאיר מחשב דולק)
הבעיה שבגללה אייתיתי להכא (תרתי משמע, גם לפורום, וגם לC#), שההעלאה לא עובדת.
זה אמור להראות כך:
https://www.call2all.co.il/ym/api/UploadFile?token=XXXXXXXXXXXXXXXX&path=1.tts
אבל אני לא יודע איך לשים את הקובץ עצמו.
ניסיתי file=, ולא עבד.
נסיתי גם להעלות דרך תוכנה של RESET (תוסף לכרום בשם Advanced REST client), ולא עבד.
יש להם טופס שמאפשר להתנסות בזה, ושם זה כן עובד.
בכתובת: https://www.call2all.co.il/ym/api_upload_test.php
ושוב תודה רבה!!
פורסם במקור בפורום CODE613 ב31/03/2017 13:48 (+03:00)
האות הראשונה כן.
(כך לפי איזה ספר שאני קורא תוך כדי)
הרבה יתקן אותי אם אני טועה?
פורסם במקור בפורום CODE613 ב31/03/2017 12:35 (+03:00)
@דוד ל.ט.
המדריך של avr416 לא לגמרי עדכני מבחינת התמונות אבל עדכני לחלוטין מבחינת התוכן.
אבל אל תימנע מלשאול פה כל שאלה.
אני יעשה לך פה מדריכון אחר קצרצר:
בתפריט File (קובץ)
לחץ על New Project... (פרוייקט חדש)
שם בצד שמאל בחר בעץ בVisual C# ותחתיה בWindows Classic Desktop
בצד הימני בחר בWPF App.
למטה בName שים שם שתבחר באנגלית (תתחיל לכתוב באנגלית, רק אנגלית. גם אם אתה לא יודע תכתוב איות אנגלי למשל AniLomedTichnut או Ani_Lomed_Tichnut).
לחץ על OK.אחרי שהוא גומר לעבוד, לחץ על F5, ותהנה מהתוכנה הראשונה שלך, תכתוב לי שעברת את השלב הזה.
נ.ב. תמיד בכללי לימוד השפות תכנות משתדלים להתרכז קודם בשפה ולא בכלים. אבל אני בעד להתחיל מהדברים המדליקים שנותנים מוטיבציה. לכן התחלתי באופן שונה מהמדריך ההוא.
תודה.
איך אני זז שם?
שיחקתי קצת ב'קונסול', אבל זה משעמם בלי ויזואלי...
ובמה שאתה הבאת WPF App לאן זזים?
יש שם דאטה בייס או משהו מעניין להתחיל?
פורסם במקור בפורום CODE613 ב30/03/2017 15:47 (+03:00)
ראיתי אתר חמוד, שמתרגל כתיבת קוד, בשפות שאתה יודע.
http://www.codewars.com
לא בדקתי ממש לעומק, אבל נחמד הרעיון...
פורסם במקור בפורום CODE613 ב13/01/2018 18:32 (+02:00)