الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أخد الكلمات من ملف و وضعها في جدول (مساعدة)

بدأه Amin0u في 12 فبراير 2014 · 11 رد · 700 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم 

 

ممكن طرق فتح كل الملفات تكست الموجودة في مجلد 

 

و أخد كل الكلمات الموجودة فيه و وضعها في  جدول

 

هذا المشكل الذي أواجهه كوني ليست لدي خبرة في السي قمت بعمله بالبايثون و الباسكال لكن السي لم أفلح

 

الجدول في السي لكلمات سيكون عبارة عن مصفوفة ؟؟

 

حيث الأسطر تضم الكلمات و الأعمدة تضم الحروف هل يمكن وضع فقط جدول واحد ؟

تم تعديل هذه المشاركة بواسطة Amin0u في 12 فبراير 2014 في 17:04

−2
#2

تنبيه : لقد اخترت عنوان غير مناسب لموضوعك .. راجع الموضوع التالي :
كيف اختار عنوان المواضيع و كيف اعدل العنوان بعد التنبيه

2

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#3

شكرا أخي جاري التعديل

1
#4

أخي الكريم , لم أفهم أين السؤال ؟

هل تريد مصفوفة من بعدين

هذه إحدى الطرق

char table[10/*max number of words*/][10/*max number of letters in each word*/]={
        {'h','e','l','l','o'},
        {'m','o','s','t','y'},
        {'o','m','a','r','!'},
    };

يمكنك تعريف مصفوفة من بعدين ثم قراءة الكلمات , ووضع كل كلمة في سطر مباشرة دون الحاجة إلى تفصيل الحروف في الأعمدة ..

هكذا

char table[10/*max number of words*/][10/*max number of letters in each word*/]={
        "hello",
        "mosty",
        "omar!",
    };

بالتوفيق

1
#5

شكرا أخي و هل يمكن وضعها في جدول ذات بعد واحد ؟

char words[3]=["amine","hello","world"]

تم تعديل هذه المشاركة بواسطة Amin0u في 12 فبراير 2014 في 17:58

#6

 و هل من طريقة لقرائة ملف حرف ب حرف حتى أخره ؟

#7

نعم يمكن , إذا اعتبرنا أن السلسلة النصية هي كائن واحد وليس مصفوفة حروف من بعد واحد

هناك كائن std::string في ++C

يمكن أن تستخدمه كما يلي

std::string table[10/*max number of words*/]={    "hello",        "mosty",        "omar!"    };

ولا تنس أن تضع

#include<string>

مع المكاتب المستخدمة

#8
اقتباس

 و هل من طريقة لقرائة ملف حرف ب حرف حتى أخره ؟

بالطبع , استخدم التابع fgetc يحتاج إلى وسيط handle الملف , ويعيد حرفاً واحداً

مثال :

    FILE*test=fopen("filename.txt","r");//read mode
    while(!feof(test)){
        putchar(//to print the character
            fgetc(test)
            );
    }

بالتوفيق

1
#9

حتى ترتاح من موضوع الحجم المحدود للمصفوفة , هناك كائن std::vector في ++C

يمكن أن يحوي std::string وبذلك يمكنك تمديد الجدول

std::vector<std::string> table;
    table.push_back("hello");
    table.push_back("mosty");
    table.push_back("omar!");

بالتوفيق

#10

لكن أنا أريد سي فقط بدون استعمال orient object

وشكرا على تفاعلك مع مشكلتي

تم تعديل هذه المشاركة بواسطة مصطفى 36a2 في 12 فبراير 2014 في 18:39

#11

يمكنك عمل struct يحتوي على مصفوفة من بعد واحد

ثم عمل مصفوفة من هذا الـstruct

ولكن في النهاية لن تهرب من مسألة البعدين أبداً ..

 

مثلاً : يمكنك كتابة ما يلي

char* table[10/*max number of words*/]={
        "hello",
        "mosty",
        "omar!",
    };

ولكنها طريقة محدودة جداً , حيث عليك حجز مساحة لكل مؤشر , عن طريق malloc ثم إسناد الحروف إليه ,

أو أن تجعل المؤشر يشير إلى سلسلة تم حجزها مسبقاً ..

 

الخلاصة :

استخدم مصفوفة من بعدين ولا تخف

 

بالتوفيق

1
#12

 شكرا جزيلا لك أخي الكريم

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…