בעיה בשמירת קובץ XML

ofirsd

New member
בעיה בשמירת קובץ XML

אני מנסה לשמור קובץ XML באופן הבא: XmlFile.Save(http://localhost/Madadim/PhoneBook.xml) אולם אני מקבל שגיאה: URI formats are not supported אם אני שומר את הקובץ בצורה הבאה: XmlFile.Save(c:\PhoneBook.xml) הבנתי כי הבעיה היא בנתיב של הקובץ שאני נותן לו,, וכמובן שנתיב הקובץ נכון. האם יש לכם רעיון?
 

yuval k

New member
2 נקודות

כשכותבים סטרינג, במידה ולא כללת בקוד עצמו (כי פה מופיע כאילו לא), צריך את המרכאות - "מחרוזת". כשיש תו מיוחד, יש לשים לפניו \, כדי שהתוכנה תדע שזה תו מיוחד. למשל, תו שבירת השורה הוא \n, להבדיל מ-n רגיל. וכך גם בכיוון השני - כדי להפוך \ מסלאש שמציין "תו מיוחד" לסלאש רגיל שמופיע בתוכן, יש לשים לפניו עוד \. כך, אתה מחפש את
XmlFile.Save("c:\\PhoneBook.xml");​
אם אתה צריך " במחרוזת שלך, שים סלאש לפני המרכאות. סתם באופן כללי
 

gilad g

New member
מה שיובל אמר

נכון, אבל זה לא מה שיפתור לך את הבעיה
אתה לא יכול לשמור קובץ XML על שרת Web מרוחק כשם שאתה לא יכול לשמור קובץ אחר על שרת מרוחק. נכון, השרת שלך הוא "localhost", אבל localhost בעצם מתנהג כמו כל שרת מרוחק אחר - אלא שהשרת הוא בעצם המחשב המקומי. אם אתה עובד באפליקצית ASP.NET, אתה צריך להשתמש ב-Server.MapPath כדי לקבל את הנתיב שבו צריך לשמור את הקובץ. בקשר לשמירה ב-c:\phonebook.xml - זה, כמו שיובל אמר, בגלל שלא עשית "\\". יש פתרון נוסף, חו. משימוש בלוכסנים כפולים מכוערים, והוא:
XmlFile.Save(@"C:\PhoneBook.xml");​
ה-@ בעצם אומר לקומפיילר לא להתייחס ל-Escape Codes, ולהתייחס ל-\-ים כפשוטם. מקווה שהכל ברור
 

yuval k

New member
../images/Emo122.gif

לפי זה שהוא ניסה לשמור ל-url הייתי צריך להבין שמדובר באפליקציית ASP.net...
 

ofirsd

New member
העברת נתונים מטופס לטופס

יש לי שני טפסים ב ASP.NET. בראשון ישנו אובייקט מסויים, נניח DATATABLE כלשהו. כעת אני רוצה לקרוא את ה DATATABLE ששיך לטופס הראשון מתוך הטופס השני ולהציג אותם בטופס השני. כלומר שלטופס השני יהיה גישה לאובייקטים של הטופס הראשון, כאשר הנתונים של הטופס הראשון משתנים בזמן ריצה.ולכן הטופס השני צריך לגשת לנתונים מעודכנים. והכוונה היא לא דרך סטרינגים כי יש כמות נתונים גדולה. איך בשם האלוהים עושים את זה?
 

gilad g

New member
../images/Emo18.gif שרשר שאלותיך.

קרא את המאמר הזה... ושאלתך - יש שתי אפשרויות: א. האפשרות המכוערת - להשתמש במשתני Session, אבל זה מבזבז סתם משאבים על השרת. ב. האפשרות היותר נורמלית היא סטרינגים. אבל לא סתם סטרינג - אלא XML
ל-DataSet יש מתודות שמאפשרות המרה מהירה ל-XML (למען האמת, זו לא המרה, כי ה-Dataset בעצמו הוא מבוסס XML). על איזה מין מצב מדובר
למה אתה צריך להעביר כמות נתונים כזו גדולה בין שני הטפסים
 

ofirsd

New member
יש לי סטרינג שהוא קובץ HTML

הסטרינג הזה נבנה בטופס הראשון והוא בעצם קובץ מכיל בתוכו קובץ HTML. בטופס השני ישנה רשימת כתובות של אנשים (כלומר פנקס כתובות כזה) ואני מעוניין לשלוח לכולם את הסטרינג הזה והם יקבלו אותו בעצם כקובץ HTML. אותי מעניין איך אני מעביר סטרינג שהוא דיי גדול לטופס אחר.
 

gilad g

New member
אההה

אז למה שלא תאחד את שני הטפסים
זה נראה לי הפתרון הכי אידיאלי
לגבי העברת הסטרינג - תשתמש ב- input type=hidden, כדי להעביר אותו מטופס לטופס
 

ofirsd

New member
לא הבנתי כ"כ את החלק השני.

איך בדיוק הטופס השני יקרא אותו? איך בטופס השני אני פונה למשתנה בטופס הראשון?
 

ofirsd

New member
ע"י סקריפט בג'אווה:

window.open("phonebook.aspx","NewOne","resizable=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,toolbar=0",false); עכשיו שעברנו, אנחנו צריכים לקרוא משתנה מהראשון....
 

yuval k

New member
עם JS,

בדף phonebook.aspx אתה קורא את המשתנה מה-opener, שזה הטופס הראשון, ושם אותו כערך של קונטרול אצלך. לא?
 

ofirsd

New member
שימור ב SERVER.TRANSFER

ע"י SERVER.TRANSFER אני יכול להעביר משתנים בין טפסים, אולם כאשר אני מבצע את SERVER.TRANSFER מתוך הטופס הראשון, אז הטופס השני נפתח באותו חלון!! איך אני יכול לבצע SERVER.TRANSFER כאשר הטופס השני יפתח בחלון חדש??
 

gilad g

New member
אתה לא יכול

Server.Transfer היא פקודה של צד שרת. וחלונות הוא מושג של הלקוח. לשרת אין מושג מה זה פריימים , חלונות או כל דבר מהסוג הזה
 

ofirsd

New member
אז הבעיה נשארה אותו דבר.

איך להעביר משתנים בין שני חלונות פתוחים כאשר כל אחד מהם הוא טופס. אתה מכיר אולי משהו אחר?
 

gilad g

New member
Javascript בסיסי ../images/Emo13.gif

---- form1.aspx ---- <script language="javascript"> var x = 10; </script> ----- form2.aspx ----- <script language="javascript"> var myX = opener.x; </script>​
אני לא סגור על זה שזה opener.x, אבל אני מניח שהבנת את הרעיון
לאחר מכן, אתה יכול לתת את הערך של myX, ל-input type=hidden, כדי שהוא יהיה גם בצד שרת.
 
למעלה