Jump to content
  • הצטרפו למשפחה

    היי, היי אתה (או את) שם!

    אנחנו יודעים, נחמד להיות אנונימי, ולמי בכלל יש כוח להירשם או להיות עכשיו "החדשים האלה".

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

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

dir="rtl" style="text-align:right;"> שימו לב! השרשור הזה בן 4501 ימים, שזה ממש ממש הרבה ולכן הוא ננעל.

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

פוסטים מומלצים

פורסם

אאוץ׳. תותח!

אוכל את הכובע שהגיש לי avergel ומודה קבל עם ועדה שלפעמים מחשבים של אסוס מחזיקים מעמד אפילו מעל לשנה שלמה - אם נזכרים לעדכן את ה-bios.

  • תגובות 55
  • פורסם
  • תגובה אחרונה

המגיבים הפעילים ביותר בשרשור

המגיבים הפעילים ביותר בשרשור

תמונות שפורסמו בשרשור

פורסם

טוב, עכשיו אתם מבלבלים אותי. הקישור של dittohead הביא לי כל מיני דברים שנראים כמו שיעורי בית בקורס תכנות. מצאתי את זה:

http://gnuwin32.sourceforge.net/packages/grep.htm

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

 

התוכנה שיצר m3x.... גם לא עבדה לי. קיבלתי הודעה כזאת:

C:\Work>lineremover tosen1b.txt toremove1.txt test.txt

tosen1b.txt Caused error

ואז זה נתקע.

מחפש סוזוקי ג'ימני סטיישן 1,600 סמ"ק אוטומט

פורסם

ראיתי עכשיו רק.

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

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

נדמה לי אתה יכול להביא אותו עם 172 כ"ס, וזה יותר ממה שאתה מבקש ב 22 כ"ס, אז אל תלחץ עד הסוף.
פורסם (נערך)
טוב, עכשיו אתם מבלבלים אותי. הקישור של dittohead הביא לי כל מיני דברים שנראים כמו שיעורי בית בקורס תכנות. מצאתי את זה:

http://gnuwin32.sourceforge.net/packages/grep.htm

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

 

התוכנה שיצר m3x.... גם לא עבדה לי. קיבלתי הודעה כזאת:

C:\Work>lineremover tosen1b.txt toremove1.txt test.txt

tosen1b.txt Caused error

ואז זה נתקע.

 

אתה צריך לתת לתוכנה את הנתיב המלא של הקובץ C:\Folder\File1.txt אם יש רווחים בנתיב אז תתחום בגרשיים לפני ואחרי לדוגמה "C:\Space Folder\Space File.text".

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

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

אני חושב שיש לי שם באג. עכשיו כשכתבתי לגיא עליתי על זה. ביום ראשון אהיה ליד הקוד ואתקן הכל.

 

בינתיים אל תשתמש בתוכנה היא לא תעשה לך את הסינון

זה מה שקורה כשעושים תוכנה בכמה דקות ועוד עובדים במקביל על קוד אחר:oops:

עריכה אחרונה על ידי m3x7r3m3

ליאור

מאזדה 3 2.0 "ספיריט" 2020

בתאריך 12.5.2021 בשעה 13:54, יבגניפ כתב:

באמת. אני אוהב אותך כמו שאתה.

יבגני כבר לא אוהב אותי 😭

פורסם
ראיתי עכשיו רק.

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

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

 

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

בינתיים אכתוב את הבלוקים של הקוד:

* בדיקת תקינות לכמות פרמטרים בשורת פקודה, זכרו שהפרמטר הראשון הוא נתיב התוכנה ואנחנו מחפשים עוד 3 שמות קבצים סה"כ 4 פרמטרים. אם מס' הפרמטרים לא מתאים הצגת הודעה.

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

* יצירת וקטור של wstring (מאפשר עבודה עם יוניקוד).

* מעבר על הקובץ השני לקריאת שורה שורה לסטרינג זמני להכנסת הסטרינג הזמני לוקטור.

* פתיחת הקובץ השלישי לכתיבה.

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

* סגירת שלושת הקבצים והדפסת הודעת סיום.

ליאור

מאזדה 3 2.0 "ספיריט" 2020

בתאריך 12.5.2021 בשעה 13:54, יבגניפ כתב:

באמת. אני אוהב אותך כמו שאתה.

יבגני כבר לא אוהב אותי 😭

פורסם

בשבילך דוד ביום ראשון גם ההודעות שגיאה ישופרו :-)

ליאור

מאזדה 3 2.0 "ספיריט" 2020

בתאריך 12.5.2021 בשעה 13:54, יבגניפ כתב:

באמת. אני אוהב אותך כמו שאתה.

יבגני כבר לא אוהב אותי 😭

פורסם

גם ב-C++ זה קליל (C++11, כי אני מגניב):

 

גרסא צבעונית ב- http://pastebin.ca/2648163



[LFT]


#include
#include
#include
#include
#include
#include


int main(int argc, char* argv[])
{
if (argc

std::vector<:string> one;
std::vector<:string> two;


std::ifstream a(argv[1]);
std::ifstream b(argv[2]);


std::copy(std::istream_iterator<:string>(a),
std::istream_iterator<:string>(),
std::back_inserter(one));


std::copy(std::istream_iterator<:string>(b),
std::istream_iterator<:string>(),
std::back_inserter(two));


for(auto i : two) {
auto s = std::find(one.begin(), one.end(), i);
if (s != one.end()) { one.erase(s); }
}


std::copy(one.begin(), one.end(),
std::ostream_iterator<:string>(std::cout, "\n"));
}



Leasingfahrzeug oder nichts

פורסם (נערך)
(מלא מלא מלא מלא קוד)

ובפייתון:

* בדוק args (שלוש-ארבע שורות?)

* פתח קובץ ראשון, הפוך ל-set (שורה אחת)

* פתח קובץ שני, הפוך ל-set (שורה אחת)

* בצע difference בין שני ה-set. התוצאה: set חדש נטול כפילויות.

* הפוך את ה-set השלישי לקובץ (שורה אחת)

 

על הדרך אפשר גם לבצע trim ו-lowercase לפני שמירת ה-keys (למה לא, ליתר ביטחון), על אותן שורות.

עבור קבצים זעירים של 15000 שורות, רץ כמעט באותה מהירות כמו c++.

 

אפשר גם להשתמש ב-list או בהשוואה בין dicts, יהיה מהיר בערך באותה מידה בגודל כזה של שורות.

עריכה אחרונה על ידי hans

אוכל את הכובע שהגיש לי avergel ומודה קבל עם ועדה שלפעמים מחשבים של אסוס מחזיקים מעמד אפילו מעל לשנה שלמה - אם נזכרים לעדכן את ה-bios.

פורסם
ובפייתון:

* בדוק args (שלוש-ארבע שורות?)

* פתח קובץ ראשון, הפוך ל-dict. האימייל הוא ה-key (שורה אחת)

* פתח קובץ שני, הפוך ל-dict. גם כאן, האימייל הוא ה-key (שורה אחת)

* רוץ על ה-dict הראשון, עבור כל key שלא קיים ב-dict השני, זרוק ל-dict שלישי. (2 שורות)

* הפוך את ה-dict השלישי לקובץ (שורה אחת)

 

על הדרך אפשר גם לבצע trim ו-lowercase לפני שמירת ה-keys (למה לא, ליתר ביטחון), על אותן שורות.

עבור קבצים זעירים של 15000 שורות, רץ כמעט באותה מהירות כמו c++.

 

אפשר גם להשתמש ב-list במקום ב-dict, יהיה מהיר בערך באותה מידה בגודל כזה של שורות.

 

למה ככה? סתם ארוך.

 

import sys
a = set([l.strip().lower() for l in open(sys.argv[1], 'r').readlines()])
b = set([l.strip().lower() for l in open(sys.argv[2], 'r').readlines()])


print "\n".join(filter(lambda x: x not in b, a))


Leasingfahrzeug oder nichts


×
×
  • תוכן חדש...