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

الفئة FileWriter و العودة إلى السطر !

بدأه khaled_prg في 2 فبراير 2012 · 5 رد · 839 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته

قمت بكتابة كود جافا يطلب من المستخدم إدخال الجملة أو الحرف الذي سيضعه لاحقا عندما يتنتهي من الكتابة في الملف ثم يكتب المعلومات التي يريد تخزينها في الملف مُنتهيا بالجملة أو الحرف الآنف ذكره.

مشكلتي أو ما ينقصني حتى الآن هو الآتي :

أريد أن أقوم بتخزين المُعطيات في الملف طبقا لما كتبه المُستخدم في شاشة الكونصول الصغيرة في النيتبينز بمعنى أن المستخدم إذا قام بكتابة جملة و الضغط على أنتر و كتابة جملة أخرى فسيقوم البرنامج بتخزين الجملة الأولى و الإنتقال إلى سطر جديد لتخزين الجملة الثانية و هكذا ....

البرنامج حاليا يقوم بتخزين المعطيات بدون الرجوع إلى السطر لأنه يعتبر أن كل "رجوع إلى السطر" = "مسافة بيضاء" و هذا ما ما لا أريده !!, و قد حاولت مع \n ولكن لا جديد !!

الكود :

import java.util.Scanner;
import java.io.FileWriter;
import java.io.IOException;
public class TestFileWriter {
    public static void main(String args[]){
        Ecriture("C://Users//mahmoud//Desktop//TestFile.txt");
    }
    public static void Ecriture(String Fch){
        Scanner src = new Scanner(System.in);
        String Ch,Str;
        try{
            FileWriter EcrFch = new FileWriter(Fch,true);
            System.out.println("Fin de l'écriture ? : ");
            Ch = src.nextLine();
            System.out.println("Commencer à saisir dans le fichier texte : ");
            Str = src.nextLine();
            while(!Str.equals(Ch)){
                EcrFch.write(Str + " ");
                Str = src.nextLine();
            }
            EcrFch.close();
        }
        catch(IOException IOE){
            System.out.println("Erreur d'entrés/sorties !");
        }
    }
}

صور للتوضيح :

02prkta1.png

02duwfn1.png

هل من مساعد جزاكم الله خيرا ؟

تم تعديل هذه المشاركة بواسطة khaled_prg في 2 فبراير 2012 في 00:43

#2

ضع هذا السطر

EcrFch.write(System.getProperty("line.separator"));

بعد

EcrFch.write(Str + " ");

بالتوفيق

1

Software Developer
Mahmoudkelany.com


 

#3
Mahmoud Kelany كتب:

ضع هذا السطر

EcrFch.write(System.getProperty("line.separator"));

بعد

EcrFch.write(Str + " ");

بالتوفيق

قمت بوضع السطر و كل شي صار تمام, شكرا لك :)

بس ممكن توضح معنى السطر المُضاف لو سمحت ؟؟

#4

Bonjour Khlaed :)

اقتباس
ممكن توضح معنى السطر المُضاف لو سمحت ؟؟

Le retour à la ligne varie selon les systèmes. Sous Windows c'est "\r\n", mais sous unix c'est seulement "\n" et il me semble que c'est également différent sous Mac. Si tu veux connaitre le retour a la ligne de ton système tu peux le faire via:

String sautDeLigne = System.getProperty("line.separator")

Si ton programme peux recevoir des fichiers de divers OS, il faudrait que tu teste au moins "\n" et "\r\n".

Ahmed.

تم تعديل هذه المشاركة بواسطة أحمد المتألق في 4 فبراير 2012 في 17:31

#5

السلام عليكم

اقتباس
طبعا انا لا افهم شىء من ردك بسبب اللغة الفرنسية

وردك يعتبر مخالف لقوانين المنتدى وشكرا

مرحبا بك أخي محمد :)

آسف لكتابة الشرح بالفرنسية :blush: و لكن هل تنص قوانين المنتدى على تحريم الكتابة بغير العربية ؟ لأنني رأيت بعض الإخوة يكتبون هنا بالإنجليزية.

ما كنت أريد قوله هو :

العودة إلى السطر تختلف باختلاف نظام التشغيل, في ويندوز تكون العودة هكذا

\r\n

أما في لينكس فتكون

\n

فقط.

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

إذا كنت تريد معرفة العودة إلى السطر في نظامك فيمكنك كتابة :

String sautDeLigne = System.getProperty("line.separator")

أما إذا كان برنامجك سيعمل على أنظمة تشغيل مختلفة فيجب عليك على الأقل أن تأخذ في الإعتبار

\r\n and \n

بالتوفيق.

تم تعديل هذه المشاركة بواسطة أحمد الشنقيطي في 6 فبراير 2012 في 22:02

#6
أحمد الشنقيطي كتب:

السلام عليكم

مرحبا بك أخي محمد :)

آسف لكتابة الشرح بالفرنسية :blush: و لكن هل تنص قوانين المنتدى على تحريم الكتابة بغير العربية ؟ لأنني رأيت بعض الإخوة يكتبون هنا بالإنجليزية.

وعليكم السلام ورحمه الله وبركاته

اخوك محمود وليس محمد

ليس اسفاً اخى احمد لكن المشكله اننى لم افهم ما قولته له باللغه الفرنسية

بالنسبه للقواعد

2. يتم طرح السؤال باللغة العربية الفصحي لأنها مفهومة لكل العرب

لكن بالنسبه للانجليزى ليس دائما ما يجاوب بها :)

لكن اعتقد ان المعظم يجيد الانجليزية لكن القليل من يجيد الفرنسية (امثالى happy.gif)

جزاكم الله خيرا على التوضيح انا اعرف المعلومه لكن غيرى لا يعرفها فبالتالى يأتى ليعرفها يجدها بالفرنسية فيصعب عليه معرفتها smile.gif

بالتوفيق اخى الكريم :)

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 6 فبراير 2012 في 23:19

Software Developer
Mahmoudkelany.com


 

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