מדריך | הוספת ערכים לשני קבצים בהזנה אחת ע"י מודול הוספת ערכים (add_id_to_list)
- 
					
					
					
					
כידוע, שבמודול הוספת ערכים ניתן להוסיף ערך לקובץ בודד,
במדריך זה נראה פתרון איך להוסיף ערכים בפעם אחת לשני קבצים במקביל
בואו נתחיל!
אתן דוגמא, אני מעוניין שבמערכת שלי כל מי שנכנס פעם ראשונה - יעבור לרישום שמו,
אני מעוניין שהשם ישמר גם בקובץ
EnterIDValNameוגם בקובץPhonesName,יש לי בעיה שמודול הוספת ערכים עובד רק על קובץ בודד, איך אגדיר שהמשתמש יקיש פעם אחת וירשום בשני הקבצים?
נצטרך לכך לפחות 9 שלוחות "וכל המרבה הרי זה משובח" (יבואר בהמשך)
- שלוחת הרישום (לצורך הדוגמא שלוחה 
add_name) - שלוחה 
Aבתוך שלוחהadd_name- רישום - שלוחה 
add_limitבתוך שלוחהA- שלוחת הוספת הגבלת כניסות (שלוחה זאת נועדה למנוע תקלות - ראה בהמשך) - שלוחה 
remove_limitבתוך שלוחהA- שלוחת ביטול הגבלת כניסות (שלוחה זאת נועדה למנוע תקלות - ראה בהמשך) - שלוחה 
Bבתוך שלוחהA- רישום לקובץ הראשון - שלוחה 
Cבתוך שלוחהB- שינוי כתובת הקובץ לרישום בשלוחהB - שלוחה 
Dבתוך שלוחהC- שינוי מעבר בסיום לשלוחהB - שלוחה 
Eבתוך שלוחהD- החזרת כתובת הקובץ בשלוחהBלקובץ הראשוני - שלוחה 
Fבתוך שלוחהE- החזרת מעבר בסיום לשלוחהB 
שלוחה add_name/type=go_to_folder title= go_to_folder=A/add_limitשלוחה add_name/A/add_limit/type=add_id_to_list title= add_id_to_list_location_list=/add_name/A/add_limit/ext add_id_to_list_key=limit_entries_folder_max add_id_to_list_value=1 add_id_to_list_end_go_to=.. add_id_to_list_error_end_goto=hangup add_id_to_list_value_expired=5m limit_entries_folder_goto=hangupשלוחה add_name/A/remove_limit/type=remove_id_from_list title= remove_id_from_list_location_list=/add_name/A/add_limit/ext.ini remove_id_from_list_key=limit_entries_folder_max remove_id_from_list_end_goto=/שלוחה add_name/A/type=add_id_to_list title= add_id_to_list_location_list=/add_name/A/B/ext add_id_to_list_key=add_id_to_list_value add_id_to_list_value_type=keyboard add_id_to_list_value_change=yes add_id_to_list_end_goto=Bשלוחה add_name/A/B/type=add_id_to_list title= add_id_to_list_location_list=/EnterID/EnterIDValName add_id_to_list_value= add_id_to_list_value_change=yes add_id_to_list_end_goto=Cשלוחה add_name/A/B/C/type=add_id_to_list title= add_id_to_list_location_list=/add_name/A/B/ext add_id_to_list_key=add_id_to_list_location_list add_id_to_list_value=/PhonesName add_id_to_list_value_change=yes add_id_to_list_end_goto=D add_id_to_list_value_expired=10sשלוחה add_name/A/B/C/D/type=add_id_to_list title= add_id_to_list_location_list=/add_name/A/B/ext add_id_to_list_key=add_id_to_list_end_goto add_id_to_list_value=E add_id_to_list_value_change=yes add_id_to_list_end_goto=../.. add_id_to_list_value_expired=10sשלוחה add_name/A/B/E/type=add_id_to_list title= add_id_to_list_location_list=/add_name/A/B/ext add_id_to_list_key=add_id_to_list_location_list add_id_to_list_value=/EnterID/EnterIDValName add_id_to_list_value_change=yes add_id_to_list_end_goto=Fשלוחה add_name/A/B/E/F/type=add_id_to_list title= add_id_to_list_location_list=/add_name/A/B/ext add_id_to_list_key=add_id_to_list_end_goto add_id_to_list_value=C add_id_to_list_value_change=yes add_id_to_list_end_goto=../../../remove_limitבשלוחה
add_name/A/יש להעלות קובץ בשםM3411שאומר "המערכת שומרת את הפרטים, אנא המתינו"m3411.wavבשלוחות
B,C,D,E,F,add_limitיש להעלות קובץ שקט בשםM3411
m3411.wavשלוחות
add_limitוremove_limitנועדו למנוע תקלות כששני משתמשים נכנסים בו זמנית לשלוחת הרישום ואז תוך כדי שהראשון נרשם לשני הקבצים - השני משנה את השם!,
לכן יש לשים מגבלת כניסות על השלוחהקישור למודול הגבלת כמות כניסות
ניתן לצמצם את האפשרות שמשתמש לא יוכל להירשם בעת רישום משתמש אחר ע"י ההוראות הבאות
- בשלוחה 
add_name/נפתח שלוחה חדשה בשםB - נעתיק את כל הקבצים והתיקיות כולל קובץ ההגדרות בשלוחה 
Aלתוך שלוחהadd_name/B/ - בשלוחה 
add_name/A/add_limit/נשתיק את הודעת מערכתM3752 - נשנה ניתובים :
 
שלוחה add_name/A/add_limit/limit_entries_folder_goto=../../Bשלוחה add_name/B/add_limit/add_id_to_list_location_list=/add_name/B/add_limit/extשלוחה add_name/B/remove_limit/remove_id_from_list_location_list=/add_name/B/add_limit/ext.iniשלוחה add_name/B/add_id_to_list_location_list=/add_name/B/B/extשלוחה add_name/B/B/C/add_id_to_list_location_list=/add_name/B/B/extשלוחה add_name/B/B/C/D/add_id_to_list_location_list=/add_name/B/B/extשלוחה add_name/B/B/E/add_id_to_list_location_list=/add_name/B/B/extשלוחה add_name/B/B/E/F/add_id_to_list_location_list=/add_name/B/B/ext
קישור למודול הגבלת כמות כניסות
קישור למודול הוספת ערכים
כמובן שניתן לפתוח גם שלוחה C ובכך לצמצם עוד יותר את הסיכויים שלא יוכל להירשם
וכל המרבה הרי זה משובח
בהצלחה
בפוסטים ארוכים כאלו מצויים בד"כ טעויות, אם מצאתם טעות אשמח שתגיבו על כך ואשתדל לתקן - שלוחת הרישום (לצורך הדוגמא שלוחה 
 - 
					
					
					
					
@CUBASE אם תוכל בשני מילים להסביר מה הרעיון, דהיינו איך למעשה זה עובד, בלי כל ההגדרות עצמם, אלא מה זה עושה (לדוגמא, תסביר ששלוחה A מעבירה את המשתמש לשלוחה B ששם קורה כך וכך ואז חוזר לC וכו').
מקוה שהובנתי, תודה רבה. - 
				הוזכר על-ידי C CUBASE
 - 
				הוזכר על-ידי א אA
 - 
					
					
					
					
@צבי-ד-צ אודה מאוד להסבר קצת על מה קורה בקומבינה המורכבת הזו..
ממש דחוף לי... ותודה רבה למי שהעלה אותה.. - 
					
					
					
					
- שלוחה ראשונה (שלוחה 1): תשמש לקבלת הקלט מהמשתמש (השם) ולשמור אותו בקובץ הראשון (EnterIDValName.ini). בסיום השמירה המוצלחת, היא תעביר את השיחה לשלוחה השנייה.
 - שלוחה שנייה (שלוחה 2): תשתמש באותם נתונים (המפתח והערך שהוקשו) כדי לשמור את השם בקובץ השני (PhonesName.ini).
כך המשתמש מקיש פעם אחת, והמערכת משלימה את הפעולה בשני שלבים שקופים. 
שלב 1: הגדרת השלוחה הראשונה (שמירה ב-EnterIDValName)
נניח ששלוחה 1 היא זו שבה המשתמש נכנס ומקיש את שמו.
בשלוחה זו יש להגדיר:
הגדרה
ערך
הסבר (במילים פשוטות)
type
add_id_to_list
מגדיר שמדובר בשלוחה שמוסיפה ערך לרשימה או קובץ.
enter_id
yes
דורש זיהוי אישי מהמשתמש (במקרה זה, מספר הטלפון שלו יהיה המפתח).
enter_id_type
phone
מגדיר שהזיהוי האישי הוא מספר הטלפון המחייג (או כל סוג זיהוי שאתה בוחר).
add_id_to_list_location_list
/EnterID/EnterIDValName.ini
היעד הראשון: המיקום המוגדר לשמירת שמות משתמשים.
add_id_to_list_key
EnterId
מגדיר שהמפתח בקובץ יהיה המספר האישי של המשתמש.
add_id_to_list_value_type
keyboard
מבקש מהמשתמש להקיש את הערך (השם) באמצעות מקלדת אותיות.
add_id_to_list_value_change
yes
אם השם כבר קיים, הוא יעודכן לערך החדש שהוקש.
add_id_to_list_end_goto
/2
השרשור: לאחר שהשמירה הצליחה, השיחה תועבר מיידית לשלוחה 2 (הנמצאת תחת השלוחה הראשית).
שלב 2: הגדרת השלוחה השנייה (שמירה ב-PhonesName)
כעת, השיחה מגיעה לשלוחה 2 באופן אוטומטי, מיד לאחר שהמשתמש סיים להקיש את שמו בשלוחה 1.
כדי שהמערכת לא תבקש שוב מהמשתמש להקיש את שמו, אנו נשתמש בהגדרת add_id_to_list_value_type שתאפשר לנו "למשוך" את השם שהוזן זה עתה.
בשלוחה 2 יש להגדיר:
הגדרה
ערך
הסבר (במילים פשוטות)
type
add_id_to_list
שוב, השלוחה מוסיפה ערך לרשימה.
enter_id
yes
שומר על הזיהוי האישי שהוגדר בשלוחה הקודמת.
enter_id_type
phone
סוג הזיהוי זהה לקודמת.
add_id_to_list_location_list
/PhonesName.ini
היעד השני: מיקום הקובץ שבו נשמרים שמות המשויכים למספרי טלפון.
add_id_to_list_key
phone
מגדיר שהמפתח בקובץ יהיה מספר הטלפון המחייג (כך שמתאים לקובץ PhonesName.ini).
add_id_to_list_value_type
EnterIDName
הטריק: במקום לבקש מהמשתמש הקשה חדשה, אנו אומרים למערכת להשתמש בשם שכבר שוייך למספר האישי (שהוגדר בשלוחה 1, או נטען מ-EnterIDValName.ini).
login_add_val_name
yes
מוודא שהשם נטען לתוך הזיכרון של השיחה.
add_id_to_list_value_change
yes
מאפשר עדכון אם השם כבר קיים בקובץ זה.
add_id_to_list_end_goto
/
חוזר לתפריט הראשי (או לכל שלוחה אחרת שתרצה).
סיכום תהליך המשתמש- המשתמש מחייג ונכנס לשלוחה 1.
 - המערכת מבקשת מהמשתמש להקיש את שמו (באמצעות מקלדת אותיות).
 - המשתמש מקיש את השם וסולמית.
 - שמירה 1: המערכת שומרת את המספר האישי (ID) והשם שהוקש בקובץ EnterIDValName.ini.
 - מעבר שקט: המערכת מעבירה את השיחה מיידית לשלוחה 2.
 - שמירה 2: שלוחה 2 מזהה את השם שנקלט כרגע (באמצעות EnterIDName) ושומרת אותו יחד עם מספר הטלפון המחייג בקובץ PhonesName.ini.
 - המשתמש חוזר לתפריט הראשי (או ליעד הסופי).
בצורה זו, המשתמש ביצע הקשה אחת, אך הנתון נשמר בשני הקבצים כמבוקש. 
 - 
					
					
					
					
 - 
					
					
					
					
@אאא-יוני א"א לעשות המרת טקסט לדיבור במודול הוספת ערך- אז איך אתה רוצה בדיוק שזה יעבוד?
 - 
					
					
					
					
@CUBASE אוקיי .. חשבתי שכמו שהרשמה לקובץ EnterIDValName כן מתבצעת ע"י המרה לטקסט ככה המערכת יכולה לשכפל את הנתון לקובץ PhonesName.. זה כוונתי בשאלתי.. ושוב תודה!