עידכנתי קצת.
גירסה מעודכנת יותר עם טבלאות שגיאה והצלחה וכן הודעות שגיאה מתאימות וכן טבלא עם מספר המוסד וככה לא צריך להקליד כל פעם מספר מוסד.
nedarim_plus.accdb
יש לרשום בטבלת mosad תחת הרשומה mosad_id את המספר מוסד.
(עודכן גם בפוסט הראשון בעמוד).
עידכנתי קצת.
גירסה מעודכנת יותר עם טבלאות שגיאה והצלחה וכן הודעות שגיאה מתאימות וכן טבלא עם מספר המוסד וככה לא צריך להקליד כל פעם מספר מוסד.
nedarim_plus.accdb
יש לרשום בטבלת mosad תחת הרשומה mosad_id את המספר מוסד.
(עודכן גם בפוסט הראשון בעמוד).
@aaaa קח תהנה.
Dim XMLHTTP
Dim result As String
Dim argumentString
argumentString = "Mosad=7006356&ClientName=&Adresse=&Phone=0345677765&ClientId=&CardNumber=4580458045804580&Tokef=0776&Amount=1&Tashloumim=1&Groupe=&Avour=Yemot&Token=&CVV=386&Zeout=123456789&Currency=1&MasofId=Online"
Set XMLHTTP = CreateObject("MSXML2.XMLHTTP.6.0")
XMLHTTP.Open "POST", _
"https://www.matara.pro/nedarimplus/V6/Files/WebServices/DebitCard.aspx", False
XMLHTTP.setRequestHeader "Content-type", "application/x-www-form-urlencoded; charset=UTF-8"
XMLHTTP.send argumentString
result = XMLHTTP.responsetext
Set XMLHTTP = Nothing
Debug.Print result
בדקתי אצלי וזה עובד
@יעקב-מ-פינס כתב במתקשה בהתקנת NodeBB על שרת Vps (הוסטינגר):
הצלחתי להתקין ע"י דוקר
מכיוון שההתקנה הייתה עם gpt, ואני לא יודע מה הוא מדריך ומה לא, הייתי ממליץ לך לשמור את המסד נתונים עם volume לתיקייה מקומית, כדי שאם יקרוס השרת, או סתם ריסטארט לדוקר, הנתונים יישמרו, ולא יתאפס הפורום כל פעם מחדש.
@מעמד-מוצלח כתב בקוד גוגל סקריפט להעברת מיילים לפי תווית:
https://tchumim.com/topic/10610/סקריפט-גוגל-להגדרת-כתובת-להעברה
שלום וברכה אני מעונין בקוד שיעבור על תיבת המייל ויראה אם יש הודעות עם תווית מסויימת ואם כן ישלח אותם כולל הכל: שם שולח, תוכן ההודעה, נושא, וקבצים מצורפים
בשמי למייל השני
אשמח לכל התחלה של קוד כזה , תודה רבה
כתבת בקטגוריית תכנות, לא בקטגוריית דרושים,
אני מניח שהתחלת לתכנת את זה?
איזה שפה חשבת לעשות את זה?
מה התחלת לעשות?
מה יש לך?
איפה נתקעת?
@mekev כתב בדרוש קובץ שפה עברית לFoxit:
@mekev
השגתי, תודה
אולי תעלה לדרייב או שים פה קישור למקור שלך, שיהיה לבאים אחריך שיחפשו?
חיפשתי בגוגל על טבלאות ציר, אחרי ניסוי ותהייה, הצלחתי בס״ד לסיים עם הפרויקט הזה, תודה לכל העוזרים.
מה שתכלס אני השתמשתי בזה, זה טבלת ציר שממויינית לפי הוועד, לתוכה הכנסתי גם את הסכומים שנאספו, ואת היעדים וכו,
אחרי זה השתמשתי עם משהו כמו זה
='טבלת ציר'!C7
כדי להכניס בגליון המעוצב את הנתונים שסוכמו שם.
@one1010 כתב בשליחת מייל מאקסס ללא לקוח דוא"ל:
@צבי-ש כתב בשליחת מייל מאקסס ללא לקוח דוא"ל:
כבוד מינימלי זה כשבן אדם עונה לך תשובה, לקרוא אותה...
@צדיק-תמים ענה לך עם קישור למדריך שלו בנושא, טרחת להיכנס לקישור?
אחרי זה היה לך בעיות או שאלות?ברור! חלילה מלחשוד בי...
קראתי אבל אני לא באמת יודע איך מתקדמים אחרי שיש לי את הקוד URL...
אולי לעתיד תמקד את הבעיה במה בקוד שלו לא הצלחת, שאבין שקראת ושעברת לנושא אחר.. אולי אפילו תפתח על זה נושא חדש.
״
תקבל כתובת URL שאתה פשוט פונה אליה בPOST, וזה שולח לך מייל עם הכותרת שהוגדרה בסקריפט ("הופעלה הפונקציה"). מוגבל ל100 מיילים ביום בחשבון לא עסקי.
תוכל להוסיף param בשם text עם טקסט לתוכן המייל.
בנטפרי הכתובת שתקבל תהיה חסומה, תוכל לפנות אליהם ויפתחו.
״
יש לך את הכתובת url, תחפש כאן בפורום או בגוגל איך עושים בקשת post ב vba ,
למשל פה יש נושא על זה
@one1010 כתב בשליחת מייל מאקסס ללא לקוח דוא"ל:
שליחת מייל מאקסס דרך גוגל סקריפט
כבוד מינימלי זה כשבן אדם עונה לך תשובה, לקרוא אותה...
@צדיק-תמים ענה לך עם קישור למדריך שלו בנושא, טרחת להיכנס לקישור?
אחרי זה היה לך בעיות או שאלות?
@one1010 כתב בשליחת מייל מאקסס ללא לקוח דוא"ל:
@צדיק-תמים וזה לא מצריך שום גלישה/התקנה/שימוש בלקוח דוא"ל?! הכל רק מקוד VBA?
נכון, בקשת http מהקוד, אבל עדין כל מי שרוצה יוכל לשלוח מיילים בשמך, רק לא לגשת למייל עצמו.
@מעמד כתב בעכבר אלחוטי שמגלגל לבד בכיוון ההפוך:
@OdedDvir כתב בעכבר אלחוטי שמגלגל לבד בכיוון ההפוך:
@מעמד ניסית לבדוק האם זה לכלוך?
איך לבדוק ?
@OdedDvir כתב בעכבר אלחוטי שמגלגל לבד בכיוון ההפוך:
באופן אינטואיטיבי שיערתי שנכנס אבק או לכלוך אחר לתוך המנגנון של הגלגלת, אבל לא היו לי כלים לפתוח את העכבר באותו זמן, אז פשוט נשפתי כמה נשיפות חזקות לחריץ של הגלגלת, והבעיה נעלמה...
@n123456 כתב באבטחת חשבונות:
קראתי שוב ועדיין לא הבנתי. כנראה חסר לי הבנה בנושא.
אולי לא הסברתי טוב מה קשה לי אחרי ההסבר של יוסי- על עוצמת ההגנה. נגיד מישהו פרץ למחשב ויודע את המשתמש והסיסמא והשתלט על הטלפון לקבל את הSMS. איך האימות הזה יגן על מקרה כזה, הרי הפורץ יכול לסרוק את הקוד בעצמו עם התוסף דפדפן.לפני שיוסי כתב מה שכתב כאן, הייתי בטוח שזה קוד שנשלח לאפקליקציה של המספר פאלפון שהנה יותר איכותית מSMS
הברקוד הוא סודי, ומוצג לך ביצירת החשבון,
האפליקציה מייצרת לך על פי אלגוריתם שלוקח את הזמן הנוכחי, + הברקוד קוד מספרי שאותו אתה מכניס לאתר,וככה האתר יודע שזה אתה שמנסה , כי ביצירת החשבון אתה קיבלת את הברקוד, ולא סתם גונב סיסמאות.
אם הפורץ השתלט על הפלאפון, הוא באמת יוכל לקחת גם את האפלקיציה, אבל במקרה כזה כל אימות דו שלבי לא יועיל..
זה עדיף מאשר SMS כי SMS אפשר ליירט גם בלי לקחת פיזית את המכשיר.
@נועההה כתב בהקטנת קישור:
@צבי-ש תודה.
אז אני מבינה שזה אפשרי רק באתר הזה [או באתרים דומים] אבל אם אני שולחת למישהו הודעה במייל למשל אני לא יכולה לערוך את זה.
אפשרי, יש גם במייל משהו דומה (אם משתמשים במיל של גימייל)
הלחצן המודגש כאן, יפתח חלון עם הכנסת הקישור
אפשרי גם במיילים שנותנים הטמעת html אבל זה כבר יותר מסובך.
@נועההה כתב בהקטנת קישור:
כשאני מפרסמת או שולחת קישור איך אני עושה שלא יראו את כל כתובת הקישור רק כמו שהרבה מפרסמים שהקישור הוא 'מסתתר' תחת מילה אחרת [כמו למשל ראה כאן].
יש ללחוץ על הכפתור הזה (שמודגש)
[טקסט קישור](כתובת קישור)
ייכתב משהו כזה:
במקום כתובת הקישור יש להקליד את הקישור עצמו
במקום טקסט הקישור יש להקליד את הטקסט.
יש לשים לב, לא לשנות את הסוגריים ממקומם
@קומפיונט כתב בלמה אסור להשתמש ברכבת בעל 256 זוגי גלגלים בשווייץ?:
@yossiz ומה יקרה אם יהיו 512 זוגות גלגלים? למה זה כן מותר?
512 גם יהיה את אותה בעיה, הכוונה לכל מספר שמתחלק ב 256 ללא שארית,
בכל מקרה יכול להיות שם בעיות בכללי עם כל רכבת של מעל 256
שני חיישנים
במרחק של 3 ק״מ אחד מהשני,
רכבת ארוכה 2 ק״מ ובעלת 257 זוגות סרנים
הוא עובר בראשון והחיישן הראשון מעלה את המספר סרנים עד שמגיע אל 256 ואז שוב 1,2
הוא כרגע על 2,
הרכבת מגיע אחרי דקה אל החיישן השני, 1,2 והופ, החיישן פותח את הרמזור
@ששא כתב במסד נתונים קיים ולא קיים בmysql:
@dovid כתב במסד נתונים קיים ולא קיים בmysql:
למה אתה לא מחזיר את המצב לקדמותו
איך אפשר?
@ששא כתב במסד נתונים קיים ולא קיים בmysql:
אז הלכתי למקור... עצרתי את mysql, הלכתי לתיקייה /var/lib/mysql/ ושם שיניתי את שם שני המסדים שרציתי להחליף לשמות החדשים והפעלתי מחדש
@מוטי-מן כתב בעזרה לקוד אסינכרוני בnodejs:
אני משתמש בספריה לתקשורת עם ימות המשיח בnode, ובקטע הזה, הmessage נשלח לימות ריק, היינו אני לא שומע את ההודעה, אבל זה כן נותן לי את אפשרויות ההקשה,
if (isAir != false) { var message = ''; if (isAir.length > 1) { message = `יש לכם ${isAir.length} אסימונים פעילים לחצו על 1 להשמעה חוזרת ו 2 ליציאה`; } else if (isAir.length === 1) { message = 'יש לכם אסימון אחד לחצו על 1 להשמעה חוזרת ו 2 ליציאה'; } else { console.log('No matching rows found'); } console.log('message', message); const choiceAction = await call.read([{ type: 'text', data: message }], 'tap', { max_digits: 1, digits_allowed: [1, 2], allow_empty: false, sec_wait: 8 }); console.log('choiceAction', choiceAction); }
אני חושב שזה בגלל האסינכרוניות, למרות שההדפסה לקונסול כן יוצאת תקינה, איך אני מוודא שרק לאחר סיום הif תתבצע הקריאה לread?
(אני מכיר קצת קולבקים אבל לא הבנתי איך להכניס את זה במקרה הזה בלי להשתמש בעוד פונקציות)
מה כתוב בלוג api של ימות המשיח?
שמה הם קיבלו ממך, איזה תשובה?
@מוטי-מן כתב בלינוקס אבונוטו קבלת נתונים משרת מרוחק באמצעות VPN של Fortinet/הרצת תהליך קבוע:
@צבי-ש אבל אז אני יהיה מוגבל למבנה התיקיות הנוכחי..
יש דרך לקבל את התיקייה שבה נמצא קובץ הjs?עריכה: שאלתי את ג'י פי טי, וזה מה שהוא הביא לי, אנסה בהמשך בעז"ה
אני לא זכרתי בע״פ אז חיפשתי בגוגל
״get path in nodejs״
וזה התוצאה הראשונה
https://stackoverflow.com/questions/3133243
סליחה על המענה המאוחר, אני השתמשתי בפיתרון ש @ivrtikshoret כתב פה,
עבד לי מעולה, ערכתי את הפונקציה שתתאים גם לקבצים קטנים יותר.
const readInChunks = (filePath, chunkSize = 5000000) => {
const file = fs.readFileSync(filePath);
const chunks = [];
for (let offset = 0; offset < file.length; offset += chunkSize) {
const chunk = file.slice(offset, offset + chunkSize);
chunks.push(chunk);
}
return chunks;
};
export const uploadFileInYemot = async (filePath, path, tokenYemot) => {
const fileSize = fs.statSync(filePath).size;
const contentName = filePath.split('/').pop();
if (fileSize <= 5000000) {
const formData = new FormData();
formData.append('token', tokenYemot);
formData.append('path', path);
formData.append('convertAudio', 1);
formData.append('autoNumbering', 1);
formData.append('file', fs.readFileSync(filePath), {
filename: contentName,
contentType: 'application/octet-stream',
});
const response = await fetch('https://www.call2all.co.il/ym/api/UploadFile', {
method: 'POST',
body: formData,
});
return await response.json();
} else {
const chunks = readInChunks(filePath);
const qquuid = uuidv4().toString();
for (let i = 0; i < chunks.length; i++) {
const chunk = chunks[i];
const formData = new FormData();
formData.append('token', tokenYemot);
formData.append('path', path);
formData.append('qquuid', qquuid);
formData.append('convertAudio', 0);
formData.append('autoNumbering', 'true');
formData.append('uploader', 'yemot-admin');
formData.append('qqfilename', contentName);
formData.append('qqtotalfilesize', fileSize);
formData.append('qqtotalparts', chunks.length);
formData.append('qqchunksize', chunk.length);
formData.append('qqpartbyteoffset', i * chunk.length);
formData.append('qqpartindex', i);
formData.append('qqfile', chunk, {
filename: contentName,
contentType: 'application/octet-stream',
});
const response = await fetch('https://www.call2all.co.il/ym/api/UploadFile', {
method: 'POST',
body: formData,
});
const responseData = await response.json();
console.log(responseData);
}
const finalFormData = new FormData();
finalFormData.append('token', tokenYemot);
finalFormData.append('path', path);
finalFormData.append('uploader', 'yemot-admin');
finalFormData.append('convertAudio', '0');
finalFormData.append('autoNumbering', 'true');
finalFormData.append('qquuid', qquuid);
finalFormData.append('qqfilename', contentName);
finalFormData.append('qqtotalfilesize', fileSize);
finalFormData.append('qqtotalparts', chunks.length);
try {
const response = await fetch('https://www.call2all.co.il/ym/api/UploadFile?done', {
method: 'POST',
body: finalFormData,
});
const responseData = await response.text();
console.log(responseData);
} catch (error) {
console.error("Error during the fetch:", error);
}
}
};
תודה לכל העוזרים.
נ.ב. תודה למי שפנה אליי באישי והאיר לי על הנושא.
@yossiz כתב בבדיקה על חודש איזה אירועים קיימים בו:
סתם טיפ (אולי כבר עמדת על זה), כדי לענות על השאלה צריך לפצל את השאלה לשני חלקים:
א) מה השאילתא הנכונה
ב) איך לתרגם את זה ל-sqlalchemyבחיפוש אחרי תשובה לשאלה הראשונה אתה לא אמור לכתוב את המילה sqlalchemy כלל בחיפוש
רק אחרי התשובה לשאלה הראשונה, אם יש עדיין שאלה איך לממש ב-sqlalchemy, אז ניתן לחפש על זה בנפרדולעצם השאלה:
בעצם צריך לחפש את האירועים שתאריך הסיום או תאריך ההתחלה נמצאים בתוך החודש הרצוי
דהיינו (פסאודו קוד):WHERE (start_date BETWEEN תחילת_החודש AND סוף_החודש) OR (end_date BETWEEN תחילת_החודש AND סוף_החודש)
https://www.sqlite.org/lang_expr.html#the_between_operator
אני לא יודע אם יש תמיכה ב-sqlalchemy לאופרטורBETWEEN
, אבל גם אם לא זה זהה לשילוב התנאים של לא פחות מ- ולא יותר מ-זה יתן לך רשימת אירועים שחופפים את החודש. איך תתרגם את זה לרשימת ימים? לכאורה כבר עדיף בקוד ולא ב-SQL. למה להסתבך...
אני לא יודע אם בכלל תכננת את זה בצורה הכי נכונה, אבל לא הקדשתי לזה מספיק מחשבה
תודה,אכן עמדתי על זה , ובחיפושים לא חיפשתי את sqlalchemy
כתבתי שאני עובד עם sqlalchemy בשביל שיהיה מובן הקטע קוד שאיתו בניתי את הטבלא.
אכן מה שכתבת פותר כמעט כליל את הבעיה. ומביאה לי גם אם מתחיל אירוע בחודש הזה, וגם אם מסתיים אירוע בחודש הזה, אחרי שיש לי את האירוע אני יודע להוציא ממנו את הימים של אותו חודש בלי החודש הלא רלוונטי.
הבעיה מסתבכת כשלמשל חודש 3-4-5 מלא באירוע אחד מתמשך, אני לא יקבל בחודש 4 שום מידע על אירוע, כיוון שהוא לא התחיל בחודש 4 ולא הסתיים בחודש 4
עריכה:
בס״ד לאחר קריאה של הפוסט המחכים לעייל וחשיבה שוב אני חושב שזאת הדרך שצריך לעשות, אני עכשיו בודק, אעדכן.
שאילתא 1
תחילת תור 1 גדול מתחילת תור קיים && סוף תור 1 קטן מסוף תור קיים
שאילתא 2
תחילת תור 1 גדול מתחילת תור קיים אבל קטן מסוף תור קיים
שאילתא 3
סוף תור 1 גדול מתחילת תור קיים אבל קטן מסוף תור קיים
שאילתא 4
תחילת תור 1 קטן מתחילת תור קיים && סוף תור 1 גדול מסוף תור קיים