פורסם 2003 בספטמבר 722 שנים שלום לכולם !אני מנסה לכתוב תוכנה שהופכת את שמות הקבצים והתאגים של קבצי MP3 על מנת שיראו היטב בנגני IRIVER כשתצא התמיכה בעברית (הפוכה) בקרוב.כרגע התוכנה עובדת, אבל רק לקבצים בודדים... אני רוצה להרחיב אותה עבור WILDCARDS כלומר *,? וכן תמיכה רקורסיבית בספריות.למישהו יש רעיון/פונקציה מוכנה שיכולה לעזור לי ?בתודה מראש.#include <iostream.h>#include <string.h>#include <stdio.h>#define MAX 1024bool is_shemi (char ch){ return ((ch>='א') && (ch<='ת'));}void hebrev(const char* st, char* st2){ int i,j,l,len; len=strlen(st)-1; st2[len+1]=0; if ((st[len-3]=='.')&&((st[len-2]=='m')||(st[len-2]=='M'))&&((st[len-1]=='p')||(st[len-1]=='P'))&&(st[len]=='3')) { st2[len-3]='.'; st2[len-2]='m'; st2[len-1]='p'; st2[len]='3'; len=len-4; } i=len; while (i>=0) { if (is_shemi(st)) st2[len-i]=st; else { l=0; while (((i-l)>=0) && (!is_shemi(st[i-l]))) l++; l--; for (j=0;j<=l;j++) st2[len-i+j]=st[i-l+j]; i=i-l; } i--; }}void ren (const char* source, char* dest){ hebrev(source,dest); if (!strcmp(source,dest)) cout<<source<<" --> no change!"<<endl; else cout<<source<<" --> "<<dest<<endl; rename(source, dest); gets(dest); // just pause}int main (int argc, char *argv[]) { char new_filename[MAX]; int argn; if (argc<2) cout<<"syntax: hebrev [heb_mp3_filenames]"<<endl; else { for (argn=1;argn<argc;argn++) { ren(argv[argn],new_filename); } } return 0;}
פורסם 2003 בספטמבר 722 שנים תשים div 3איפה שה Xאל תשכח שזה לולאה מקוננת אז אתה צריך לסגור הכל עם הסוף
פורסם 2003 בספטמבר 722 שנים דבר ראשון, אני קניתי את ה iFP שלי בארה"ב דרך האינטרנט כשאמא שלי היתה שם... זה הדרך הכי זולה לדעתי להשיג את זה...ולגבי התכנות:אנשים! למה אתם מסבכים הכל! נכון ש C++ הי שפה עילית יותר מבייסיק אבל ב visual basic אפשר להכין תוכנה להפיכת התאגים בפחות מ10 דקות... חוץ מזה שם זכור לי היטב יש פונקציה בstring.h בשם srtrev? שהיא הופכת סטרינגים לא?
פורסם 2003 בספטמבר 722 שנים שאלה...בשביל שתהיה עברית נכונה צריכים להפוך את כל המשפט אות אחרי אות ככה:יונתן הקטן רץ בבוקר אל הגן||/\ןגה לא רקובב ץר ןטקה ןתנוי?
פורסם 2003 בספטמבר 722 שנים מחבר Animatrix, אני לא יודע VB, אבל אם אתה יודע לעשות תוכנית כזאת, אתה מוזמן להראות לי איך..וזה לא היפוך רגיל, כלומר לא הופכים את כל המילים- לדוגמה:mp3.ראשון 123 FIRST שני 456 SECOND שלישי ->mp3.ישילש SECOND 456 ינש FIRST 123 ןושאר(נראה לי שככה זה יהיה תקין.. אולי אבדוק ואתקן אם צריך את הפונקציה כשתצא התמיכה..)drevil , לא הבנתי על מה אתה מדבר (התוכנית עובדת כרגע)כרגע אני רוצה להרחיב את התוכנית לWILDCARDS ותתי ספריות.עריכה: אני מצרף את הקובץ ריצה של התוכנית שלמעלה שתבינו מה ניינים איתה
פורסם 2003 בספטמבר 722 שנים בניתי פונקציה רקורסיבית שמעתיקה ספרייה כולל תתי ספריות.אתה כמובן יכול לסנן מה שאתה לא צריך. private void dir_Copy(string from,string to){if(p.active){string to_name = to + "\\" + Path.GetFileName(from);if (!Directory.Exists(to_name)){// Create destination dirDirectory.CreateDirectory(to_name);//this.run_Process();p.richTextBox1.AppendText("Created Directory:"+to_name+"\n");}string[] from_dir = Directory.GetDirectories(from);string[] from_files = Directory.GetFiles(from);dir_copy_helper(from_dir,from_files,to_name);p.richTextBox1.AppendText("Copy finished.");this.file_Copy(from,to_name);p.button1.Text="Finished";}else TaskDocument.myThread.Abort();}private void dir_copy_helper(string[] dirs, string[] files,string to)//Copy Directroy using recoursion.{if (dirs.Length == 0){copy_files_helper(files,to);return;}// create dirs treefor (int i=0; i<dirs.Length; i++){string to_path = to+"\\"+Path.GetFileName(dirs);Directory.CreateDirectory(to_path);this.file_Copy(dirs,to_path);string[] new_dirs = Directory.GetDirectories(dirs);string[] new_files = Directory.GetFiles(dirs);dir_copy_helper(new_dirs,new_files,to_path);}}private void copy_files_helper(string[] files, string to){//p.progressBar1.Minimum=0;p.progressBar1.Value=0;p.progressBar1.Maximum=files.Length;p.progressBar1.Step=1;for (int i=0; i<files.Length; i++){string new_dest = to + "\\" + Path.GetFileName(files);p.progressBar1.PerformStep();p.richTextBox1.AppendText("Copying:"+files+" to:"+new_dest+"\n");try {File.Copy(files,new_dest,true);}catch (System.UnauthorizedAccessException EX){p.richTextBox1.AppendText("Can't access file: "+EX.Source+"\n");}catch (System.IO.IOException EX){p.richTextBox1.AppendText("Error while copying:"+EX.Source+"\n");}}}
פורסם 2003 בספטמבר 722 שנים אני יודע VB ויש לי גם קוד !שלם! לגמרי של תוכנית שמשנה את הID3 של קבצי MP3 בVB וזה שטויות לעשות שהיא תעבור על כל קובץ בתיקיה... אני גם יודע C++ אז כל מה שאני צריך זה את הקוד שהופך את התוים בצורה הנכונה(שדרך אגב עוד לא הנתי איך אמור להיות נכון), ואני כבר יתרגם לVB ויוסיף ממשק יפה ואופציות חיוניות...אני בטוח שאתם לא רוצים אתת התוכנה בדוס... אלה אם יש פה מישהו שיודע VC++...קיצר תעבירו אלי את הקוד הסופי שהופך סטרינג בדרך נכונה ואני ימשיך משם ובסוף גם ישחרר באתר...
פורסם 2003 בספטמבר 722 שנים קראתי פה : http://216.239.57.104/search?q=cache:gH-9grxknvoJ:www.nirdagan.com/hebrew/compare+Hebrew+visual&hl=iw&ie=UTF-8שבעצם מה שאנחנו צריכים זה לקחת סטרינג שכתוב בעברית לוגית ולהפוך ועברית ויסואלית(אשר מיועדת לקריאה בממשק שמראה משמאל לימין)...והינה מצאתי גם קוד בC++ או C לא יודע.. שממיר בין השיטות...הינה: www.evrit.co.il/code.htm
פורסם 2003 בספטמבר 722 שנים אני לומד בקצב מטורף!יש לי תוכנית מוכנה שהמירה את השם של הקובץ MP3 שנתתם כ4 הודעות למעלה !נכון! יש לי גם קוד של שינוי ID3...אז זהו? אני מסודר נכון?ההמרה נכונה? לחבר את התוכנית? איך אתם רוצים את הממשק? נותנים תיקיה וזה עובר על הקבצים? או לכל קובץ בנפרד?יש לציין שתוכנית ההמרה יודעת גם להמיר בחזרה למקור...
פורסם 2003 בספטמבר 722 שנים מחבר Animatrix(צור איתי קשר באייסיקיו ;0) , עוד לא יצא לי להסתכל בלינקים שצירפת, אבל התוכנית שכתבתי כרגע יכולה לשנות שמות קבצים כולל WILDCARDS ותתי ספריות. רק אני צריך לשנות משהו כך שגם תהפוך את שמות הספריות וזהו... השתמשתי בקוד של תוכנית שנקרת JHEAD שמתעסקת עם קבצי JPG... אני אישית מעדיף COMMAND LINE APP אבל.. ממשק בנוסף כנראה שלא יזיק...איך אתה משנה את התאגים ? האם אתה יכול לשנות גם את IDV1 וגם את IDV2 ?מצורפים מזופזפים:hebrev.exemyglob.chebrev.c/******************************************************************************************* ** Hebrev version 0.2 by idan miara email: miara(at)bonbon.net ** special thanks to Matthias Wandel email: mwandel(at)sentex.net for myglob.c ** *******************************************************************************************/#include <iostream.h>#include <string.h>#include <stdio.h>#include "myglob.c"//#define LCD_LEN 14int is_shemi (char ch){ return ((ch>='א') && (ch<='ת'));}void hebrev(const char* source_fullname, char* dest_fullname){ int i,j,l,len; char *source_filename,*dest_filename; source_filename = strrchr(source_fullname,'\\'); if (source_filename) source_filename++; // slash found else source_filename=source_fullname; // slash not found, then source_filename is the hole string strncpy(dest_fullname,source_fullname,source_filename-source_fullname); dest_filename=dest_fullname+(source_filename-source_fullname); len=strlen(source_filename)-1; dest_filename[len+1]=0; if ((source_filename[len-3]=='.')&&((source_filename[len-2]=='m')||(source_filename[len-2]=='M'))&&((source_filename[len-1]=='p')||(source_filename[len-1]=='P'))&&(source_filename[len]=='3')) { dest_filename[len-3]='.'; dest_filename[len-2]='m'; dest_filename[len-1]='p'; dest_filename[len]='3'; len=len-4; } i=len; while (i>=0) { if (is_shemi(source_filename)) dest_filename[len-i]=source_filename; else { l=0; while (((i-l)>=0) && (!is_shemi(source_filename[i-l]))) l++; l--; for (j=0;j<=l;j++) dest_filename[len-i+j]=source_filename[i-l+j]; i=i-l; } i--; }}void ren (const char * source){ char* dest; dest=malloc((strlen(source)+1)*sizeof(char)); hebrev(source,dest); if (!strcmp(source,dest)) printf("%s --> no change!\n",source); else printf("%s --> %s\n",source,dest); rename(source, dest); free(dest);}int main (int argc, char *argv[]) { int argn; if (argc<2) { printf("syntax: %s [heb_mp3_filenames]\n",argv[0]); printf("available wildcards: *, ? **(recursive)\n"); printf("example: hebrev **\שלומ*.mp3 \n"); printf("will process all strings which starts with שלומ within all subdirs\n"); } else for (argn=1;argn<argc;argn++) MyGlob(argv[argn],ren); gets(argv[0]); // just pause return 0;}
פורסם 2003 בספטמבר 722 שנים אני יודע שזה לא קשור וזה אסור ואני אף פעם לא עושה את זה אבל אני חייב עכשיו!בעעעעעעעעעעעעעעע פרופסורים איזה דברים מסובכים יש פה הייתי חושב שאתם משגרים פה מסרים לפיגועים עם לא היה לי קצת רקע, אבל וגם אני הייתי יודע :-[
פורסם 2003 בספטמבר 722 שנים מחבר עדכון: גרסה 0.3 !סיימתי לעשות את כל הטיפולים בכל המקרים כולל ריקורסיות WILDCARDS ושינוי שמות ספריות. עובד מצויין.. עכשיו רק נותר להכניס פונ' שינוי תאגים. אם משהו מכיר פונקציות C כאלה פשוטות לשינוי ID3V2 (צרפתי קובץ עם פונ' C שינוי לID3V1 שעדיין לא בדקתי, אבל נראה מבטיח... מי שמיכר דומה ל-ID3V2 שיגיד בבקשה)לעזרה: hebrev -hאהה כן: ומי שיודע איך אפשר להראות עברית בCOMMAND PROMPT של WINXP שיגיד לי- זה מעצבן לראות ג'יבריש שם !!!e-d-a , אני שמח שאנחנו מלהיבים אותך !אני עושה את התוכנה הזאת בעיקר בשביל הכיף... אבל גם בגלל שאני אצתרך אותה כנראה.. סתם כי בא לי לתכנת !
פורסם 2003 בספטמבר 822 שנים היי....אם תענו לי אז יהיה לי רליס עד מחר של ממשק בוינדווס!איזה שדות אתם רוצים שהתוכנה תהפוך? כותרת, אלבום, אמן, זהו?ועוד משהו...אתם רוצים שהתוכנה תיצור העתק של הקובץ המקורי ואז תשנה אותו או שתשנה את המקורי?
פורסם 2003 בספטמבר 822 שנים מי שרוצה להשקיע היה עושה שינוי של הקובץ המקורי, אם אפשרות בחירה של יצירת\אי-יצירת backup...
פורסם 2003 בספטמבר 822 שנים התוכנה מוכנה ועובדת פיקס ( לפי מה שאני ראיתי... ) רק מסדר קצת את הממשק ומפרסם...
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.