ABA


"איך מעבירים קובץ דר האינטרנט עם winsock?"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #6539 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 6539
mega-killer
חבר מתאריך 1.8.02
859 הודעות
   21:04   12.07.03   
אל הפורום  
  איך מעבירים קובץ דר האינטרנט עם winsock?  
 
   לא הבנתי מה צריך לעשות...



                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  כמו שמעבירים הודעה רגילה... Dudenland 13.07.03 16:05 1
     אני מבין שזה מחייב קריאה/כתיבה בינארית kobituashi 13.07.03 18:39 2
         באיזה שפה? AndreyT 13.07.03 18:47 3
             VB kobituashi 13.07.03 18:51 4
                 הינה : AndreyT 13.07.03 20:26 5
                     שונא את הסינטקסיס של וי בי בעעעעע Quant86 13.07.03 20:50 6
                     תודה רבה (: kobituashi 14.07.03 18:35 7
                     רגע.... kobituashi 14.07.03 18:52 8
                         סתקל .. פקודת ה GET היא פקודה מאוד גמישה. AndreyT 14.07.03 19:25 9
                             אני מבין את הרעיון, אבל זה יילך עם קובץ kobituashi 14.07.03 21:31 10
                                 אפשר... Dudenland 14.07.03 22:10 11
                                     אבל אתה מגדיר קובץ בינארי kobituashi 15.07.03 19:25 14
                                         זה דופק את העסק חד-קיווני AndreyT 15.07.03 23:18 15
                                             מה אתם מדברים שטויות ??? Dudenland 16.07.03 15:17 16
                                                 מכל העניין, עד עתה לא הבנתי kobituashi 16.07.03 17:35 17
                                                     בעע hll 16.07.03 17:53 18
                                                         מסכן אני לא... kobituashi 17.07.03 16:59 24
                                                 אם כך שתי קטעי התוכנית הבאים עושים אותו הדבר: AndreyT 16.07.03 19:27 21
                                                     תוכל לפרסם בהזדמנות? hll 16.07.03 19:31 22
                     ואיך אני שולח את זה ומקבל..? hll 14.07.03 23:05 12
                         זה כבר עניין של פרוטוקול תקשורת AndreyT 15.07.03 00:59 13
  לא עניתם לי על השאלה! mega-killer 16.07.03 18:05 19
     אוקי ,תעשה ככה : AndreyT 16.07.03 18:54 20
         הבנתי את הקטע הזה אבל איך אני ..... כנס... mega-killer 16.07.03 22:25 23
             אתה לא שומר בטקסט! אתה שומר בבינארי hll 17.07.03 17:18 25
                 אני אשאל פעם נוספת... kobituashi 17.07.03 18:04 26
                     כבר דנו בזה באשכול הזה! והתשובה היתה שלא hll 17.07.03 18:41 28
                     בסדר הבנתי איך לעשות את זה אבל בעיה... mega-killer 17.07.03 19:14 30
  טוב, עכשיו סוף סוף הבנתי כיצד kobituashi 17.07.03 18:09 27
     וזה יוצה בעצם אותו הדבר רק AndreyT 17.07.03 18:43 29
         מכתב Ken 17.07.03 23:33 31
  תראו... אני מצליח לעשות את זה אבל לא ברשת כנס mega-killer 18.07.03 17:43 32
     נוו בבקשה זה קצט דחוף mega-killer 19.07.03 17:03 33
  קבלו שאלה יותר מובנת ... mega-killer 22.07.03 22:12 34
     בשביל זה אתה צריך כמה דברים : AndreyT 23.07.03 15:07 35
         אני לא תומך ברעיון אני חושב שעדיף לקרוא hll 23.07.03 21:36 36
             אכן כן , הגבלות של 2.1 GB AndreyT 24.07.03 13:09 37
                 2.1 GB ? למחרוזת בויבי יש הגבלה של 32 KB ... The_Hunter 24.07.03 16:09 38
                     אוי... איך שסטיתם מהנושא... אתם מחרבשים... Dudenland 26.07.03 00:53 39
                         תבדקו ב MSDN בעצמכם : AndreyT 26.07.03 19:54 41
                             מה לא מובן ??? Dudenland 27.07.03 14:19 42
  יייש הצלחתי עכשיו אני צריך לבדוק כנסו לפרטים. mega-killer 26.07.03 04:46 40

       
Dudenland

   16:05   13.07.03   
אל הפורום  
  1. כמו שמעבירים הודעה רגילה...  
בתגובה להודעה מספר 0
 
   Dudenland


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
kobituashi לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 18.3.02
6186 הודעות, 1 פידבק
   18:39   13.07.03   
אל הפורום  
  2. אני מבין שזה מחייב קריאה/כתיבה בינארית  
בתגובה להודעה מספר 1
 
   איך ניתן לקרוא קובץ נגיד מהאמצע שלו? נגיד להתחיל לקרוא קובץ מהבייט ה-500,000 שלו?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
AndreyT

   18:47   13.07.03   
אל הפורום  
  3. באיזה שפה?  
בתגובה להודעה מספר 2
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
kobituashi לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 18.3.02
6186 הודעות, 1 פידבק
   18:51   13.07.03   
אל הפורום  
  4. VB  
בתגובה להודעה מספר 3
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
AndreyT

   20:26   13.07.03   
אל הפורום  
  5. הינה :  
בתגובה להודעה מספר 4
 
  

dim c as byte
open "c:\file.txt" for binary as #1
get #1,500000,c
close #1


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Quant86

   20:50   13.07.03   
אל הפורום  
  6. שונא את הסינטקסיס של וי בי בעעעעע  
בתגובה להודעה מספר 5
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
kobituashi לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 18.3.02
6186 הודעות, 1 פידבק
   18:35   14.07.03   
אל הפורום  
  7. תודה רבה (:  
בתגובה להודעה מספר 5
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
kobituashi לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 18.3.02
6186 הודעות, 1 פידבק
   18:52   14.07.03   
אל הפורום  
  8. רגע....  
בתגובה להודעה מספר 5
 
   נניח אני רוצה לקרוא רק 500 בתים?

נגיד מבית 500,000 עד 500,499 ? איך אני מגדיר את זה?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
AndreyT

   19:25   14.07.03   
אל הפורום  
  9. סתקל .. פקודת ה GET היא פקודה מאוד גמישה.  
בתגובה להודעה מספר 8
 
   היא קוראת מהקובץ מידע בגודל של המשתנה.
כלומר אם שמים משתנה מסוג BYTE אז הפקודה
שמה במשתנה מידע בגודל ביט (byte),
אם שמים בו משתנה מסוג Integer אז
הפקודה שמה במשתנה מידע בגודל 2 ביטים .
ניתל לשים משתנה מסוג String ואז
הפקודה שמה בו מידע בגודל המחרוזת.

אכשיו בקשר לשאלה שלך , אני הייתי עושה את זה כך:


dim t as string
t=space(499) ' הגדרת גודל המחרוזת : 499 אותיות
open "c:\myfile.txt" for binary as #1
get #1,500000,t
close #1


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
kobituashi לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 18.3.02
6186 הודעות, 1 פידבק
   21:31   14.07.03   
אל הפורום  
  10. אני מבין את הרעיון, אבל זה יילך עם קובץ  
בתגובה להודעה מספר 9
 
   בינארי? נגיד יש לי קובץ EXE, ואני רוצה לקרוא כל פעם חלק אחר ממנו, ולאו דווקא בייט-בייט אלא 500 בתים בבת אחת, אי אפשר?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Dudenland

   22:10   14.07.03   
אל הפורום  
  11. אפשר...  
בתגובה להודעה מספר 10
 
   ותיקון ל-AndreyT:
מחרוזת בעלת 500 מקומות (תאים), מגדירים כך:

Dim str_500_byte As String * 500

Dudenland


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
kobituashi לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 18.3.02
6186 הודעות, 1 פידבק
   19:25   15.07.03   
אל הפורום  
  14. אבל אתה מגדיר קובץ בינארי  
בתגובה להודעה מספר 11
 
   בתור מחרוזת, זה לא ידפוק את העסק?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
AndreyT

   23:18   15.07.03   
אל הפורום  
  15. זה דופק את העסק חד-קיווני  
בתגובה להודעה מספר 14
 
   עבר עריכה לאחרונה בתאריך 15.07.03 בשעה 23:33
 
הקריה מתוך הקובץ בעזרת מחזורת עובדת יופי,
השמירה לא כל כך , משום מה כשנעשת שמירה
הוא שומר לא נכוך כמה קודי אסקי (נראב לי 255 או 0).

אני לא כל כך יודע איך להיתגבר על התופעה ,
בינתיים זה לא הפריע לי ,הצלחתי לעקוף אותה,
אבל יש אפשרות לשמור נכון.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Dudenland

   15:17   16.07.03   
אל הפורום  
  16. מה אתם מדברים שטויות ???  
בתגובה להודעה מספר 15
 
   אין עם זה שום בעייה...
תבין, ערך או ערכים מסויימים, ניתן לכתוב או לקרוא בצורות שונות של הצפנה. המחשב, לדוגמה, קורא את הקובץ הבינארי ביט-ביט, ובבלוקים של כ-32 כאלה.
כשהמטרה שלך היא תעבורה, אין זה משנה מה תהיה צורת הקריאה/כתיבה שלך, מכיוון שהמידע נשאר אותו מידע.
זוהי הסיבה שכשפותחים קובץ בינארי בכתבן, מקבלים כל מני סימנים לא מוכרים של פרצופים וסמלים אחרים.
אם היית פותח את אותו קובץ בכתבן שקורא ב-16 ביט (2 בתים), היית מקבל סימנים שונים, אבל שוב פעם... זה לא משנה את המידע.
כשאתה קורא לתוך מחרוזת, נניח בית אחד (תו אחד), אתה קורא רבע מהפקודה, מכיוון שהפקודה היא בת 32 ביט (4 בתים), ככה שכל 4 תווים שאתה קורא, אתה מרכיב פקודה...

Dudenland


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
kobituashi לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 18.3.02
6186 הודעות, 1 פידבק
   17:35   16.07.03   
אל הפורום  
  17. מכל העניין, עד עתה לא הבנתי  
בתגובה להודעה מספר 16
 
   איך אני קורא בדיוק 500 בתים מקובץ בינארי כלשהו...

שיתחיל בקטע מסויים, ויסתיים בקטע מסויים, ושגודלו יהיה 500 בתים...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
hll

   17:53   16.07.03   
אל הפורום  
  18. בעע  
בתגובה להודעה מספר 17
 
   חח מסכן, תקרא את מה שאנדריי אמר שוב ותראה את הדוגמאות שלו...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
kobituashi לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 18.3.02
6186 הודעות, 1 פידבק
   16:59   17.07.03   
אל הפורום  
  24. מסכן אני לא...  
בתגובה להודעה מספר 18
 
   פשוט אני רוצה להבין אם העובדה שאני מגדיר את זה כמחרוזת, לא יפגע בנתונים?

אם הבנת את הקטע, בנה לי תוכנית בבקשה שתפצל קובץ ל-20 חלקים, ואח"כ שתדע לבנות את כל החלקים חזרה לקובץ המקורי.

תודה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
AndreyT

   19:27   16.07.03   
אל הפורום  
  21. אם כך שתי קטעי התוכנית הבאים עושים אותו הדבר:  
בתגובה להודעה מספר 16
 
  

For c = 1 To Len(Data)
Put #1, FileState + c, Asc(Mid(Data, c, 1))
Next


Put #1, FileState + 1, Data

זה קטע מתוך פונקציה לשליחת קווצים שבניתי.
הקטע השני לא עובד ,לא יודע למה,
כאשר אני שומר קבצי EXE דרך הקטע השני
הקובץ לא נשמר כמו שצריך.
אבל הראשון עובד מצוין,למרות שקצת יותר איטי.



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
hll

   19:31   16.07.03   
אל הפורום  
  22. תוכל לפרסם בהזדמנות?  
בתגובה להודעה מספר 21
 
   עבר עריכה לאחרונה בתאריך 16.07.03 בשעה 19:32
 
או שלמישהוא יש קוד מקור של שליחת קבצים בWinsock


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
hll

   23:05   14.07.03   
אל הפורום  
  12. ואיך אני שולח את זה ומקבל..?  
בתגובה להודעה מספר 5
 
   עבר עריכה לאחרונה בתאריך 14.07.03 בשעה 23:11
 

Winsock1.senddata

ואיך אני מקבל איזה סוג נתונים אני שם לו או שלא צריך בכלל?

Winsock1.GetData vtdada


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
AndreyT

   00:59   15.07.03   
אל הפורום  
  13. זה כבר עניין של פרוטוקול תקשורת  
בתגובה להודעה מספר 12
 
   תצא מתוך הנחה ששני המחשבים הם אנשים שמדברים בינהם.
כל אחד צריך לדעת מה מה לעשות עם כל משפט שהם אומרים
אחד לשני.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
mega-killer
חבר מתאריך 1.8.02
859 הודעות
   18:05   16.07.03   
אל הפורום  
  19. לא עניתם לי על השאלה!  
בתגובה להודעה מספר 0
 
   או לפחות חלק ממנה...
או קי כתבתי את הקוד:

dim t as string
t=space(499) ' הגדרת גודל המחרוזת : 499 אותיות
open "c:\exe.exe" for binary as #1
get #1,500000,t
close #1

תסימו לב לקובץ EXE.EXE

עכשיו... איך אני שולח אותו
winsock.senddate

ואם אני יקבל את הקובץ EXE.EXE

ואחרי שזה הגיעה...
מה אני עושה כדי שזה ישמר לי במחשב?

תודה לעוזרים



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
AndreyT

   18:54   16.07.03   
אל הפורום  
  20. אוקי ,תעשה ככה :  
בתגובה להודעה מספר 19
 
   תתען את תוכן הקובץ למשתנה, כמו שהסברתי.
תשלך למחשב שאילו אתה רוצה לשלוח הודעה בסגנון :
"אכשיו אני שולח לך קובץ בשם:EXE.EXE בגודל 100,000 ביט"
ככה שהמחשב יוכל לפרש את זה ולהסיק מכאן את שם וגודל הקובץ.
תעשה שאת ה 100,000 הביטים הבאים שישלכו אליו
יוחשבו כקובץ , יועספו וישומרו בתוץ EXE.EXE במחשב המקבל.
אחרי שהמחשב המקבל קלט 100,000 ביטים הוא עוצר.
ואז הוא יכול לחקות לקובץ או למשימה הבאה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
mega-killer
חבר מתאריך 1.8.02
859 הודעות
   22:25   16.07.03   
אל הפורום  
  23. הבנתי את הקטע הזה אבל איך אני ..... כנס...  
בתגובה להודעה מספר 20
 
   מעביר את הנתונים הבינריים למשתנה...

Dim t As String
t = Space(499)
Open "c:\exe.exe" For Binary As #1
Get #1, 500000, t
Close #1

איפה בקוד הזה אני מעביר למשתנה.????
או שהמשתנה T הוא המשתנה עם הקובץ...

ויש לי שאלה...
כשהתוכנה מקבלת את הנניח 500 ביטים הראשונים אני מעביר אותם לקובץ טקסט
ואז כשאני מקבל את החילה הבאהאני מצרף...
נניח שT זה המשתנה עם החבילה אז:
text1.text = text1.text & t
זה מה שהתכוונת?
ואז איך אני שומר את הקוד לקובץ?

יש כל מיני סוגים של שמירות...

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


תודה...



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
hll

   17:18   17.07.03   
אל הפורום  
  25. אתה לא שומר בטקסט! אתה שומר בבינארי  
בתגובה להודעה מספר 23
 
   אם תציג את הנתונים על המסך הם יתחרפנו וזה לא יעזור לך בכלום
הפקודה שהוא נתן, אם הבנתי נכון לוקחת 500 בייטים מהקובץ exe.exe
מחל מהבייט ה500000
כלומר הבייטים שיועברו ל t הם500000-500499 מהקובץ!
הבתים האלה יכנסו ל t
ועכשיו אתה יכול לשלוח את המשתנה הזה עם וינסוק
ובצד השני לקבל ולשמור בינארית את הנתונים שקיבלת


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
kobituashi לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 18.3.02
6186 הודעות, 1 פידבק
   18:04   17.07.03   
אל הפורום  
  26. אני אשאל פעם נוספת...  
בתגובה להודעה מספר 25
 
   הרי ברור לכל שצריך לשמור בצורה בינארית, אבל למעשה הגדרנו את המשתמה כמחרוזת! השאלה היא אם ההגדרה כמחרוזת לא יפגע בנתונים שנצליח לקבל מקובץ ה-EXE?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
hll

   18:41   17.07.03   
אל הפורום  
  28. כבר דנו בזה באשכול הזה! והתשובה היתה שלא  
בתגובה להודעה מספר 26
 
   ככה הם אמרו...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
mega-killer
חבר מתאריך 1.8.02
859 הודעות
   19:14   17.07.03   
אל הפורום  
  30. בסדר הבנתי איך לעשות את זה אבל בעיה...  
בתגובה להודעה מספר 26
 
   הצלחתי לעשות את זה אבל לא ברשת
עכשיו איך אני מעביר חלקים...
תמיד כשאני מעביר חלקים זה תופס רק 18 קילובייט או שיש שגיאות...
נוו בקשה תכתבו את השליחת נתונים (את הכל כולל הכל) ואת הקליטה
אני לא מצליח רק לעשות את זה בתוכנה אחת בלי שום קשר לרשת...


בקשה...



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
kobituashi לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 18.3.02
6186 הודעות, 1 פידבק
   18:09   17.07.03   
אל הפורום  
  27. טוב, עכשיו סוף סוף הבנתי כיצד  
בתגובה להודעה מספר 0
 
   מגדירים בינארי עם גודל.

dim x(100) as Byte

ולא כמחרוזת כפי שהציגו כאן.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
AndreyT

   18:43   17.07.03   
אל הפורום  
  29. וזה יוצה בעצם אותו הדבר רק  
בתגובה להודעה מספר 27
 
   שעם מחרוזת אתה מוצי מהקובץ חלק שלם בפקודה אחת
ובשיתה שלך אתה צריך להוצי כל בית בנפרד,
מה שגם מעכב את הביצועים.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Ken

   23:33   17.07.03   
אל הפורום  
  31. מכתב  
בתגובה להודעה מספר 29
 
   מה פתאום להוציא כל בייט בניפרד?!? שמעת אולי על הפונקציות Get,Put?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
mega-killer
חבר מתאריך 1.8.02
859 הודעות
   17:43   18.07.03   
אל הפורום  
  32. תראו... אני מצליח לעשות את זה אבל לא ברשת כנס  
בתגובה להודעה מספר 0
 
   אני מצליח..
אבל ברגע שאני שולח את כל הקובץ בבת אחת אז הוא שולח רק 18 קילובייט
את זה הבנתי
אז כשאני שולח חלקים חלקים אני משתמש בפקודה FOR
ככה שגם ככה כל הנתונים נשלחים ביחד...
אני צריך משהו שיפריד את החלקים ואין מה...
וחוץ מזה כשאני מקבל...
כשאני כותב
PUT,AAA,,T
ו-T זה המידע שבחלק אז הוא מחניס רק את החלק הזה ומוחק את שאר החלקים שהיו שם...
איך אני יכול לעשות שהוא לא יעשה את זה?

תודה...



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
mega-killer
חבר מתאריך 1.8.02
859 הודעות
   17:03   19.07.03   
אל הפורום  
  33. נוו בבקשה זה קצט דחוף  
בתגובה להודעה מספר 32
 
  



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
mega-killer
חבר מתאריך 1.8.02
859 הודעות
   22:12   22.07.03   
אל הפורום  
  34. קבלו שאלה יותר מובנת ...  
בתגובה להודעה מספר 0
 
   תראה אני יודע איך לקחת קוד בינרי של קובץ מסויים ולשמור אותו...

זאת אומרת שאני יכול לעשות הכל חוץ מלהעביר את הנתונים דרך ווינסוק ולקלוט את הנתונים ולשמור אותם במחשב אחר..

עכשיו הבעיה שלי היא לחלק את הנתונים כדי לשלוח חלק חלק למחש אחר שיחבר את כל הנתונים ויצור קובץ...

אני פשוט לא מצליח בשום דרך שהי אז אני צריך עזרה...
מי שיכול לכתוב לי תוכנת דוגמא שאני ילמד מה צריך לעשות אני מאוד יודה לו...

מי שיכול לעזור בכל דרך אחרת אני גם יודה לו



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
AndreyT

   15:07   23.07.03   
אל הפורום  
  35. בשביל זה אתה צריך כמה דברים :  
בתגובה להודעה מספר 34
 
   ערכתי לאחרונה בתאריך 23.07.03 בשעה 15:08 בברכה, AndreyT
 
לדעת פונקציות גזירת מחרוזות , שבעזרתם תוכל
לחלק את הקובץ לחלקים ,אלו לדעתי יספיקו :

MID,Left,Right,InStr

תוכל לקרוא עליהם ב MSDN.

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

בהצלחה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
hll

   21:36   23.07.03   
אל הפורום  
  36. אני לא תומך ברעיון אני חושב שעדיף לקרוא  
בתגובה להודעה מספר 35
 
   חלק, לשלוח, לקבל במחשב השני ולצרף את הנתונים לנתונים שכבר נשמרו
כי הרי לString יש הגבלת גודל בכל זאת...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
AndreyT

   13:09   24.07.03   
אל הפורום  
  37. אכן כן , הגבלות של 2.1 GB  
בתגובה להודעה מספר 36
 
   ערכתי לאחרונה בתאריך 24.07.03 בשעה 13:10 בברכה, AndreyT
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
The_Hunter

   16:09   24.07.03   
אל הפורום  
  38. 2.1 GB ? למחרוזת בויבי יש הגבלה של 32 KB ...  
בתגובה להודעה מספר 37
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Dudenland

   00:53   26.07.03   
אל הפורום  
  39. אוי... איך שסטיתם מהנושא... אתם מחרבשים...  
בתגובה להודעה מספר 38
 
   חשוב לציין כי סוכם על שליחה בחלקים, ושהבעיה של ה-Subject היא לא איך לשמור את הנתונים, כי אם איך להעביר אותם ממחשב למחשב.
אגב... AndreyT, אתה השתגעת ? 2.1GB ??? גם אם זה נכון, זוהי טעות מוחלטת לעשות דבר שכזה. נתונים מסוג זה, אשר לא חייבים בעריכה, יש לשמור בהארד-דיסק. (נקודה).

טוב, בשביל להעביר את הנתונים, אתה צריך ליצור לעצמך פרוטוקול שליחה לתקשורת בין שני המחשבים. אתה צריך לזכור שקודם כל שולחים מידע, ורק אחר-כך מקבלים. לכן, אתה צריך לעשות שימוש בקודים...

נניח שאתה תשתמש במקסימום של 256 אפשרויות לתוכנה שאתה יוצר (אני מדבר על אפשרויות כמו ב-eMule וכו').
נניח שקוד אסקי 1, יאפיין בקשה לשליחת קובץ מסויים מן הקלינט לשרת, שמצויין בשאר ההודעה... ההודעה תיראה כך: 1kazaa.exe
אם הקובץ קיים, תאושר ההורדה, וישלח קוד אסקי כלשהו למחשב הקלינט + פרטים אודות הקובץ... כמו גודל הקובץ וכו'. אם לא, ישלח קוד אסקי אחר.

עכשיו, נניח שההורדה אושרה, המחשב הקליינט יכול להוריד... אז הוא ישלח קוד אסקי לבקשת Chunk מסוים מן הקובץ (נניח שכל Chunk יהיה 18KB), אז הוא ישלח את ההודעה הבאה: 2212, כלומר 2 הוא קוד האסקי לבקשת Chunk, ו-212 הוא מספר הבית שממנו אנו רוצים (מ-212 ועד ל-219). השרת יקבל זאת, וישלח הודעה עם קוד אסקי מסויים שפירושו חבילת הורדה + המידע. מכאן והלאה (לשמור את המידע בקובץ במקום המתאים) אתה תסתדר...

מצטער שזה קצת מבולגן
Dudenland


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
AndreyT

   19:54   26.07.03   
אל הפורום  
  41. תבדקו ב MSDN בעצמכם :  
בתגובה להודעה מספר 39
 
   ערכתי לאחרונה בתאריך 26.07.03 בשעה 19:54 בברכה, AndreyT
 

A variable-length string can contain up to
approximately 2 billion (2^31) characters

שזה 2.1 GB .

אם שולכים קובץ של עד MB , ניתן לא לחלק אותו לחלקים.
למרות שאני ממליץ מאוד להישתמש בפרוטוקול.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Dudenland

   14:19   27.07.03   
אל הפורום  
  42. מה לא מובן ???  
בתגובה להודעה מספר 41
 
   אף אחד לא מפקפק בגודל המשתנה String ב-VB.
הפיקפוק הוא בצורך להשתמש בתכונה זו, שכאמור, לא הכרחית ואף בזבזנית. לא חבל על הזיכרון ?
במקרה של מידע בסדר גודל שכזה, ומסוג שכזה (שאינו דורש בעריכה), נוהגים להשתמש בהארד-דיסק.

Dudenland


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
mega-killer
חבר מתאריך 1.8.02
859 הודעות
   04:46   26.07.03   
אל הפורום  
  40. יייש הצלחתי עכשיו אני צריך לבדוק כנסו לפרטים.  
בתגובה להודעה מספר 0
 
   אני צריך מתנדב שאני יביא לו תקובץ ואז יהיה אפשר לבדוק מהיריות ודברים כאלה...

אפשר ליצור קשר איתי בפרטי פה באשכול או באיציק: 292126605

ד"א לגבי האפשרות string אני בטוח שאין הגבלה אבל כל תו יכנס לביית בזיכרון

תודה לעוזרים



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net