
المشاركة الأصلية كتبت بواسطة Wyana
السلام عليكم ..
لدي برنامج asp سكربت
اريد اضافة به كود عند دخول الصفحه يقوم في تسجيل بيانات في ملف مثال ..
يقوم في فتح ملف على السيرفر ويسمى بهذا الاسم
مثال تاريخ اليوم 1-1-2007
يقوم بفتح ملف 112007.txt
ويقوم بتخزين بداخله
الايبي - التاريخ - الوقت بالضبط
وانا اريد وضع الاوامر في ملف الـ login
وياريت في هذا الملف يقوم بتخزين ايضاً اسم اليوزر الذي تم تسجيل دخوله
ارجو الافاده يا اخوان
هلا اخوي
اتوقع لو تعمل التالي يكون مرتب اكثر
تنشىء مجلد عنوان يكون بعنوان التاريخ مثلا اسم المجلد 6-5-2007
وداخل هذا المجلد تنشىء ملفات اسمها يكون على رقم عضوية المستخدم الي سجل دخول
في داخلها يكون الاي بي والتاريخ بالوقت والساعه
لكي تقوم بهذا يلزمك استخدام مكتبة ال IO
في البداية نقوم بالتأكد من ان اسم المجلد موجود او غير موجود
وهذا يعني انه لما يدخل يوم جديد ويقوم احد الاعضاء بتسجيل الدخول
فسوف يتم التأكد من اذا كان اسم المجلد المسجل باسم هذا التاريخ موجود او لا
عند اول تسجيل دخول لن يكون موجود لذلك سوف يقوم بانشائه وفي عمليات التسجيل اللاحقة سوف يذهب للتأكد من وجود المجلد فسوف يجده موجود فلن يقوم بانشائه
لكي نقوم بانشاء المجلد باسم التاريخ لهذا اليوم بهذه الكود
في البداية نقوم بجلب مسار الموقع او المجلد الفرعي الذي في الموقع والذي نريد انشاء مجلدات تسجيل الدخول بداخله
مثلا نفرض ان مسار الموقع هو
C:\Inetpub\wwwroot\testweb
ونريد انشاء المجلدات المسجله بالتاريخ في داخل مجلد فرعي اسمه loginfolder
فيكون المسار كامل هو
C:\Inetpub\wwwroot\testweb\loginfolder
في البداية نتأكد من انه اذا كان اسم المجلد بتاريخ اليوم موجود او انه غير موجود في حالة كان غير موجود نقوم بانشائة
كود:
Dim FolderPath = "C:\Inetpub\wwwroot\testweb\loginfolder\" & Date.Now.ToString("dd/MM/yyyy")
If IO.Directory.Exists(FolderPath) = False Then
IO.Directory.CreateDirectory(FolderPath & "\" & Date.Now.ToString("dd/MM/yyyy"))
End If
Date.Now.ToString("dd/MM/yyyy")
هذه تجيب لنا تاريخ اليوم بالترتيب العربي يعني اول شي اليوم بعدين الشهر بعدين السنة
بعد ذلك نقوم بانشاء ملف جديد اسمه يساوي رقم العضوية للعضو
نفرض ان رقم العضوية موجود عندنا في متغير اسمه
UserID
نفس الطريقة للفولدر نتأكد من انه اذا كان المستخدم هذا مسجل دخول من قبل ام انها اول مرة
لو كانت اول مرة نقوم بانشاء الملف والكود هو التالي
كود:
If IO.File.Exists(FolderPath & "\" & Date.Now.ToString("dd/MM/yyyy") & "\" & UserID & ".txt") = False Then
IO.File.Create(FolderPath & "\" & Date.Now.ToString("dd/MM/yyyy") & "\" & UserID & ".txt")
End If
هكذا لو كان هذا المستخدم مسجل دخول لاول مرة نقوم بانشاء الملف باسمه ولو كان ليس اول مرة يعني سجل دخول في هذا اليوم قبل هذه المرة لا نفعل شيء لان الملف موجود اصلا
الان نقوم بفتح الملف ونقرأ كل محتوياته ومن ثم نضيف عليها محتويات جديده ونعيد تخزينها في الملف مرة اخرى والطريقة هي التالية
نقوم بقرائة البيانات التي في الملف بالكود التالي
كود:
'جلب مسار الملف كامل
Dim UserFilePath As New IO.StreamReader(FolderPath & "\" & Date.Now.ToString("dd/MM/yyyy") & "\" & UserID & ".txt")
'قرائة محتويات الملف
Dim UserFileInfo As String = UserFilePath.ReadToEnd()
UserFilePath.Close()
نقوم باضافة البيانات الجديدة على البيانات الاصلية بالكود التالي
كود:
'الان نقوم بزيادة محتويات جديدة على محتويات الملف الاصلية
UserFileInfo &= Date.Now
لان نقوم باعادة كتابة البيانات الجديد والتي هي عبارة عن القديمة مضاف لها الجديدة كامله في داخل الملف
طبعا سوف يلغي كل شيء بداله ويضيف من جديد لا باس فنحن اصلا جبنا المعلومات الاصليه الي كانت به واحفظنا بها واضفنا عليها
الكتابة على الملف بالكود التالي
كود:
Dim UserFilWrite As New IO.StreamWriter(FolderPath & "\" & Date.Now.ToString("dd/MM/yyyy") & "\" & UserID & ".txt")
UserFilWrite.Write(UserFileInfo)
UserFilWrite.Close()
طبعا احنا استخدمنا ملف من نوع txt
لكن ممكن تنشىء ملف من نوع html
وتدخل في البيانات بشكل كود html وتعمل جداول والوان وتنسقه مثل ماتريد
هذه هي اخي واي سؤال لا تتردد
في امان الله