בחירת שורה מטקסט

tamirvs

New member
בחירת שורה מטקסט

נגיד יש לי איזה קובץ טקסט, איך אני מראה רק שורה מסויימת ממנו? -תודה
 

crazypr

New member
בחירת שורה מטקסט

נראה לי שהכי פשוט זה שתהפוך את הטקסט למערך לפי שורות עם split, ואז תיגש רק לתא (שבעצם יכיל רק את השורה) שאתה רוצה
 

kensaggy

New member
ממממ....

אני ממליץ לך לקרוא בתיעוד קצת על מערכים: http://il.php.net/manual/en/language.types.array.php http://il.php.net/manual/en/language.operators.array.php http://il.php.net/array
 

tamirvs

New member
קראתי אבל...

נגיד יש לי קובץ שכתוב בו 40 שורות של משהו ואני רוצה להוסיף טקסט לשורה ה26 אז איך אני עושה את זה?
 

kensaggy

New member
מממממ.....

כותב לתא 25 (כי מערך מתחיל מ 0) את מה שאתה רוצה וכותב את כל המערך חזרה לקובץ ע"י נגיד לולאת foreach -חן.
 

tamirvs

New member
מישהו יכול להסביר לי את הקוד הבא?

יש לי קוד: <?php $filename = 'C:\php\web\chara.txt'; $lines = file($filename); $a=0; foreach($lines as $a){ $a = trim($a); if($a == 'account-password = '.$pass.''){ $passflag=TRUE; } elseif($a == 'account-character = '.$char.''){ $charflag=TRUE; } } if(!$passflag){ echo 'Incorrect password'; } if(!$charflag){ echo 'Character does not seem to be on this account!'; } else{ $fl = substr($acc, '0', '1'); $casc = ord($char); $fchar = $dir . '\\Character\\ASCII' . $casc . '\\' . $char . '.txt'; $lines = file($fchar); $a=0; foreach($lines as $b){ if(substr_count($b, 'skill-mastery') > 0){ $sline = $a; } $a++; } $lines[$sline] = 'skill-mastery = 123 3276 04 824289'; $lines = implode('', $lines); $fo = fopen("$fchar", 'w+'); fwrite($fo, $lines); echo 'Operation completed successfully!'; ?> שהוא כותב בשורב של magic mastery את המספר הזה... אז מה שאני רוצה זה שמישהו יסביר לי איך בדיוק הוא עושה את זה - יסביר לי את השלבים וגם למה הוא כתב ++a$ (לא אני כתבתי את הקוד הזה) -תודה
 

tamirvs

New member
סליחה הקוד הזה:

זה הקוד אבל אני מבקש את מה שביקשתי בהודעה הקודמת <?php $fchar = 'C:\php\web\chara.txt'; $lines = file($fchar); $a=0; foreach($lines as $b){ if(substr_count($b, 'skill-mastery') > 0){ $sline = $a; } $a++; } $lines[$sline] = 'skill-mastery = 123 3276 04 824289'; $lines = implode('', $lines); $fo = fopen("$fchar", 'w+'); fwrite($fo, $lines); echo 'Operation completed successfully!'; ?>
 

crazypr

New member
הקוד מיושר כמו שצריך

<?php $fchar = 'C:\php\web\chara.txt'; $lines = file($fchar); $a=0; foreach($lines as $b){ if(substr_count($b, 'skill-mastery') > 0){ $sline = $a; } $a++; } $lines[$sline] = 'skill-mastery = 123 3276 04 824289'; $lines = implode('', $lines); $fo = fopen("$fchar", 'w+'); fwrite($fo, $lines); echo 'Operation completed successfully!'; ?>​
 

crazypr

New member
למרות שהקוד הבא לא הכי חכם...

הוא טוען את הקובץ לתוך מערך, ואז בודק לכל שורה האם השרוה מכילה את skill-mastery (זה מה שדפוק פה, שהוא לא בודק שזה בתחילת שורה, או מה יש חוץ מזה, או כמה פעמים זה מופיע) הוא עושה a++ בשביל לראות באיזה שורה הוא נמצא עכשיו. אחרי זה הוא לוקח את השורה שהוא מצא (תהיה לו בעיה אם הוא לא ימצא לפני זה את skill-mastery כי הוא יתיחס למשתנה שלא אופס) ומחליף אותה בשורה עם המספר שהוא רצה לשים. אחרי זה הוא בונה מהמערך string אחד ארוך (איפה שהוא משתמש ב implode) שומר הכל לתוך קובץ... וזהו... יש מבין?
 

tamirvs

New member
אוקיי כמב שאלות

שאלה 1: איך ישרת את הקוד? שאלה 2: כשלמדתי php היה כתוב ש a++ מוסיף אחד למשתנה a אז איך פה זה בודק באיזה שורה זה? שאלה 3: למה היה צריך implode? מה זה נתן?
 

crazypr

New member
כנס בפנים...

1. מתחת לחלון שאתה כותב יש לינקים של תחילת קוד וסיום קוד, תשתמש בהם. 2. הוא עושה את זה כל סיבוב של ה foreach, כלומר כל פעם שהוא עובר לשורה חדשה, וככה הוא סופר את מספר השורה. 3. מה שimplode עושה זה הופך מערך ל string
 
למעלה