السلام عليكم
اريد تصحيح هذا الكود لكي اقرأ السطر السابع في ملف و ليس السطر الأول
char line[200];
f = fopen("fichier.txt", "r");
(fgets(line, 132, f));
Memo2->Lines->Add(" nbsv "+FloatToStr(i)+" : (" +(line)+"");السلام عليكم
اريد تصحيح هذا الكود لكي اقرأ السطر السابع في ملف و ليس السطر الأول
char line[200];
f = fopen("fichier.txt", "r");
(fgets(line, 132, f));
Memo2->Lines->Add(" nbsv "+FloatToStr(i)+" : (" +(line)+"");تم تعديل هذه المشاركة بواسطة milou في 24 مارس 2014 في 19:48
القراءة من الملف تكون متتالية و بالتالي لا يمكنك القفز للسطر السابع مباشرة و لابد ان تقوم بقراءة أول 6 أسطر و تجاهلها.
الدالة getline متوفرة بمكتبة ++C، على العكس مع لغة C و يمكنك الحصول على الكود الخاص بها من هنا أو من هنا، لاحظ ان كل من الاكواد المشار إليها يمكن تحسينها لأفضل مما هى عليه لإستخدامك.
الكود التالي يفترض ان الملف يحتوى على الاقل سبعة أسطر و طول كل منهم لا يزيد عن 200 حرف. الدالة getline ألمستخدمه هنا هى getline الموجوده بـ glib.
char line[200];
size_t len;
f = fopen("fichier.txt", "r");
for(int i=1; i<7 && !feof(f); ++i, len = 200)
getline(&line, &len, f);
len = 200;
getline(&line, &len, f);و الله ولي التوفيق
تم تعديل هذه المشاركة بواسطة C++er في 24 مارس 2014 في 22:09
مدونتي: C++ Tips and Tricks
char line[200];
f = fopen("fichier.txt", "r");
for(j=0;j<nb_lignes;j++)
{
fgets(line, 132, f);
if (j==6)
{
Memo2->Lines->Add(" nbsv "+FloatToStr(j)+" : " +(line)+"");
شكرا لك بارك الله فيكة و هذه ايضا طريقة قد نجحت معي
شكرا مجددا
هذا الموضوع مغلق.