1. اس فورم پر جواب بھیجنے کے لیے آپ کا صارف بننا ضروری ہے۔ اگر آپ ہماری اردو کے صارف ہیں تو لاگ ان کریں۔

جاوا میں خودکار طریقے سے تصاویر اور ٹیکسٹ تبدیل کرنا

'انفارمیشن ٹیکنالوجی' میں موضوعات آغاز کردہ از واصف حسین, ‏2 مئی 2011۔

  1. واصف حسین
    آف لائن

    واصف حسین ناظم سٹاف ممبر

    شمولیت:
    ‏3 جولائی 2006
    پیغامات:
    10,073
    موصول پسندیدگیاں:
    1,807
    ملک کا جھنڈا:
    میں ایک ویب سایٹ بنا رہا تھا جس میں تصاویر اور ان سے منسلک ٹیکسٹ فائل کو خودکار طریقے سے تبدیل کرنا تھا۔ اس کے لیے میں نے ایک جاوا اسکریپٹ تیار کیا ہے۔ یہاں تھوڑی بہت وضاحت کے ساتھ آپ کے ساتھ شیئر کر رہا ہوں۔ اگر مذید مدد کی ضرورت ہو تو میں حاضر ہوں۔کوڈ کو ٹکڑوں میں لکھوں‌گا اور آخر میں مکمل کوڈ بھی شامل کروں‌گا تاکہ اگر آپ اس کو استعمال کرنا چاہیں تو کاپی پیسٹ کر سکیں
    کوڈ:
    <script>
          
            function display_file(file,control) {
                var httpRequest = false;
                var browser = 0;
                var result;
                var value;
                try {
                    httpRequest = new XMLHttpRequest();
                } catch (trymicrosoft) {
                    try {
                        httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
                        browser = 1;
                    } catch (othermicrosoft) {
                        try {
                            httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                            browser = 2;
                        } catch (failed) {
                        httpRequest = false;
                        alert("failed miserably");
                        }
                    }
                }
               
                httpRequest.open("GET", file, true);
                httpRequest.send(null);
                httpRequest.onreadystatechange = function() {
                    if (this.readyState == 4 && this.status == 200) {
                        switch (browser) {
                            case 0:
                                {
                                    value = this.responseText;
                                    break;
                                }
                            case 1:
                                {
                                    result = new ActiveXObject("Msxml2.XMLDOMDocument");
                                    result.async = "false";
                                    result.loadXML(this.responseText);
                                    value = result.documentElement;
                                    break;
                                }
                            case 2:
                                {
                                    result = new ActiveXObject("Microsoft.XMLDOM");
                                    result.async = "false";
                                    result.loadXML(this.responseText);
                                    value = result.documentElement;
                                    break;
                                }
                            default:
                                {
                                    value = this.responseText;
                                    break;
                                }
                        }
                        document.getElementById(control).value = value;
                    }
                }
            }
            </script>
    
    یہ فنکشن پہلے چیک کرتا ہے کہ صارف کونسا براوزر استعمال کر رہا ہے۔ اس کی ضرورت اس لیے ہے کہ انٹرنیٹ ایکپلورر 6۔0 اور اس سے پہلے کے براوزر XMLHttpRequest کو اسپورٹ نہیں کرتے اور ان کے لیے ActiveX استعمال کرنا پڑتا ہے۔ براوزر چیک کر کے اس کے مطابق ٹیکسٹ فائل کو read کر کے نتیجہ return کرتا ہے۔ جوکہ ایک ٹیکسٹ ایریا میں ڈسپلے ہوتا ہے۔

    اس کے بعد ٹائمر استعمال کر کے 20 اسیکنڈ کے بعد تصویر اور ٹیکسٹ فائل تبدیل ہوتی ہے۔
    کوڈ:
    var c = 20;
            var NoOfProducts = 10;
            var t=setTimeout("timedCount()", 1000);
            
            function timedCount()
            {
            
            c = c + 1;
            file1 = Math.round(Math.random() * (NoOfProducts)) + 1;
            file2 = Math.round(Math.random() * (NoOfProducts)) + 1;
            if (c > 20 && file1 != file2) {
            c = 0
            document.getElementById('p1i').src = './products/' + file1 + '.jpg';
            document.getElementById('p1i').style.width = "200px";
            document.getElementById('p2i').src = './products/' + file2 + '.jpg';
            document.getElementById('p2i').style.width = "200px";
    
            display_file("./text_files/" + file1 + ".txt", "p1t");
            display_file("./text_files/" + file2 + ".txt","p2t");
            clearTimeout(t)
            t = setTimeout("timedCount()", 1000);
            }
            else
            t = setTimeout("timedCount()", 1000);
            }
            </script>
    
    اس کوڈ میں رینڈم استعمال کر کے دو تصویریں اور ان سے منسلک ٹیکسٹ فائل چنی جاتی ہے۔ تصویر کا لنک Image Control پر سیٹ کیا جاتا ہے اور ٹیکسٹ فائل پہلے والے فنکشن کو بھیجی جاتی ہے۔ یوں اس فنکشن کی مدد سے ہم Display_file اور اسی فنکشن کو کال کرتے ہیں تاکہ یہ ایک مسلسل لوپ کے طور پر چلے۔

    ہیڈ سکیشن میں لکھا جانے والا کوڈ یوں‌ہے
    کوڈ:
    <script>
                 
            function display_file(file,control) {
                var httpRequest = false;
                var browser = 0;
                var result;
                var value;
                try {
                    httpRequest = new XMLHttpRequest();
                } catch (trymicrosoft) {
                    try {
                        httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
                        browser = 1;
                    } catch (othermicrosoft) {
                        try {
                            httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                            browser = 2;
                        } catch (failed) {
                        httpRequest = false;
                        alert("failed miserably");
                        }
                    }
                }
               
                httpRequest.open("GET", file, true);
                httpRequest.send(null);
                httpRequest.onreadystatechange = function() {
                    if (this.readyState == 4 && this.status == 200) {
                        switch (browser) {
                            case 0:
                                {
                                    value = this.responseText;
                                    break;
                                }
                            case 1:
                                {
                                    result = new ActiveXObject("Msxml2.XMLDOMDocument");
                                    result.async = "false";
                                    result.loadXML(this.responseText);
                                    value = result.documentElement;
                                    break;
                                }
                            case 2:
                                {
                                    result = new ActiveXObject("Microsoft.XMLDOM");
                                    result.async = "false";
                                    result.loadXML(this.responseText);
                                    value = result.documentElement;
                                    break;
                                }
                            default:
                                {
                                    value = this.responseText;
                                    break;
                                }
                        }
                        document.getElementById(control).value = value;
                    }
                }
            }
    
            
            
            var c = 20;
            var NoOfProducts = 10;
            var t=setTimeout("timedCount()", 1000);
            
            function timedCount()
            {
            
            c = c + 1;
            file1 = Math.round(Math.random() * (NoOfProducts)) + 1;
            file2 = Math.round(Math.random() * (NoOfProducts)) + 1;
            if (c > 20 && file1 != file2) {
            c = 0
            document.getElementById('p1i').src = './products/' + file1 + '.jpg';
            document.getElementById('p1i').style.width = "200px";
            document.getElementById('p2i').src = './products/' + file2 + '.jpg';
            document.getElementById('p2i').style.width = "200px";
    
            display_file("./text_files/" + file1 + ".txt", "p1t");
            display_file("./text_files/" + file2 + ".txt","p2t");
            clearTimeout(t)
            t = setTimeout("timedCount()", 1000);
            }
            else
            t = setTimeout("timedCount()", 1000);
            }
    
            
            
            </script>
    Head سیکشن میں مندجہ بالا کوڈ لکھنے کے بعد اب اس کو اپنے پیج میں شامل کرنا ہوتا ہے۔ اس کے لیے باڈی سیکشن میں جہاں آپ اس کو دکھانا چاہتے ہیں یہ کوڈ لکھیں۔ نوٹ کریں کہ یہ HTML کنٹرول ہیں اس لیے ان کے ساتھ script ٹیگ کی ضرورت نہیں۔
    کوڈ:
    <body bgcolor="Blue" onload="timedCount()">
        
        <table >
            
                  
            <tr dir="rtl">
                            <td valign="top" > 
                   <input type="image" dir="ltr" id="p1i" alt="Loading......"/>                 
                                   </td>
            
                <td valign="top" > 
                          <textarea id="p1t" dir="rtl" rows="10" cols="20" 
                        style="font-family: 'Jameel Noori Nastaleeq'" name="p1t" </textarea>                
                                        </td>
                   
                <td valign="top"> 
                
                <input type="image" dir="ltr" id="p2i" alt="Loading......" />
                
                </td>
            
                <td valign="top" > 
                
                     <textarea id="p2t" dir="rtl" rows="10" cols="20" 
                                            style="font-family: 'Jameel Noori Nastaleeq'; name="p2t" </textarea> 
                 
                </td>
            </tr>
                    
        </table>
        
    </body>
    لیں جی کام مکمل۔ اس بات کو یقینی بنائیں کہ آپ کی سایٹ پر تصاویر 1.jpg, 2.jpg کی شکل میں موجود ہوں‌اور ٹیکسٹ فائلیں 1.txt, 2.txt میں موجود ہوں۔ اس سے آپ 10 تصایر چلا سکتے ہیں۔ اگر مذید تصاویر شامل کرنی ہوں تو

    کوڈ:
    var NoOfProducts = 10;
    ویری ایبل کو تصاویر کی تعداد کے حساب سے تبدیل کر دیں۔ اس اسکریپٹ کو کام کرتے دیکھنے کے لیے http://che.org.pk دیکھیں۔ بہتر نتایج کے لیے FireFox استعمال کریں۔
     
  2. ملک بلال
    آف لائن

    ملک بلال منتظم اعلیٰ سٹاف ممبر

    شمولیت:
    ‏12 مئی 2010
    پیغامات:
    22,418
    موصول پسندیدگیاں:
    7,511
    ملک کا جھنڈا:
    جواب: جاوا میں خودکار طریقے سے تصاویر اور ٹیکسٹ تبدیل کرنا

    جاوا نہ جاننے کی وجہ سے سمجھ تو نہیں سکا لیکن اتنی سمجھ آئی ہے کہ یہ for....nextx -loop نما کوئی عمل کیا گیا ہے ۔ :139:
     
  3. واصف حسین
    آف لائن

    واصف حسین ناظم سٹاف ممبر

    شمولیت:
    ‏3 جولائی 2006
    پیغامات:
    10,073
    موصول پسندیدگیاں:
    1,807
    ملک کا جھنڈا:
    جواب: جاوا میں خودکار طریقے سے تصاویر اور ٹیکسٹ تبدیل کرنا

    آپ کی بات کسی حد تک درست ہے مگر یہ لوپ ٹائم کے حساب سے چلتی ہے۔ یعنی ہر 20 سیکنڈ کے بعد۔ اس کی ٹائمنگ سسٹم کلاک کے ساتھ ہے اور تیز و سست دونوں کمپیوٹروں میں‌یکساں وقفے سے چلے گی۔
     
  4. ناصرشاہین
    آف لائن

    ناصرشاہین ممبر

    شمولیت:
    ‏16 اپریل 2011
    پیغامات:
    38
    موصول پسندیدگیاں:
    1
    ملک کا جھنڈا:
    جواب: جاوا میں خودکار طریقے سے تصاویر اور ٹیکسٹ تبدیل کرنا

    پیارے بھائی بہت شکریہ۔ بڑی محنت سے پوسٹ کولکھاہے۔ لیکن کسی حدتک مجھے بھی سمجھ آگئی ہے۔
    وہ دوست جوجاوانہیں جانتے اوراپ کی پوسٹ کی پوسٹ بھی اگرسمجھ نہیں آئی توپھراس سافٹ وئیرکوٹرائی کریں یہ سارا کام ایک کلک سے کردیتاہے۔ مجھے توبہت پسندہے۔ اس میں کافی سارے جاواایفکٹ ہیں جوویب میں استعمال کئے جاسکتے ہیں ۔ اپ کی رائے کاانتظاررہےگا۔اس ربط سے ڈاؤن لوڈ کریں۔

    [​IMG]
     
  5. واصف حسین
    آف لائن

    واصف حسین ناظم سٹاف ممبر

    شمولیت:
    ‏3 جولائی 2006
    پیغامات:
    10,073
    موصول پسندیدگیاں:
    1,807
    ملک کا جھنڈا:
    جواب: جاوا میں خودکار طریقے سے تصاویر اور ٹیکسٹ تبدیل کرنا

    display file کا فنکشن تبدیل کر کے اسے چھوٹا اور آسان بنایا ہے۔ اوپر والے کوڈ میں صرف ڈسپلے فائل کا فنکشن اس کوڈ سے تبدیل کر دیں۔
    کوڈ:
    function display_file (file, OptStr) {//Read text files
                var value = !window.XMLHttpRequest ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest();//check browser and make appropriate call
                value.open(OptStr ? 'PUT' : 'GET', file, false);// open file to read
                value.setRequestHeader('Content-Type', 'text/html')
                value.send(OptStr ? OptStr : ''); // add optional string
                return value.responseText; //return file contents
            }
     
  6. واصف حسین
    آف لائن

    واصف حسین ناظم سٹاف ممبر

    شمولیت:
    ‏3 جولائی 2006
    پیغامات:
    10,073
    موصول پسندیدگیاں:
    1,807
    ملک کا جھنڈا:
    جواب: جاوا میں خودکار طریقے سے تصاویر اور ٹیکسٹ تبدیل کرنا

    لیں جی مختصر کرتے کرتے اب صرف فائنل کوڈ آپ کی خدمت میں پیش ہے ۔۔یہ کوڈ میں‌ایک ویب سائٹ پر استعمال کر رہا ہوں۔
    کوڈ:
    <html>
    <head>
    <script>
    function path(){
    var mydate=new Date() 
    var month=mydate.getMonth()
    month=month+1 
    var daym=mydate.getDate() 
    var PageLink = 'http://www.mysite.com/pages/' + month + '_' + daym + '.htm'
    var PathImage = 'http://www.mysite.com/images/' + month + '_' + daym + '.jpg'
    
    document.getElementById('link').href = PageLink;
    document.getElementById('image').src = PathImage;
    
    }
    </script> 
    </head>
    <body onload=path();>
    
    	<a id="link" >
    	<img id="image" alt="Loading......" width="200"/>
    	<br/>Click to Enlarge
    	</a>
    	    
    </body>
    </html>
    اس کوڈ کی مدد سے کلانٹ کمپیوٹر کی سسٹم ڈیٹ کی بنیاد پر تصویر منتخب ہو کر دکھائی دیتی ہے۔ اس کے درست کام کرنے کے لیے ضروری ہے کہ جو تصاویر آپ دکھانا چاہتے ہیں انکا فائل نیم اس فارمیٹ کے مطابق ہو
    month_date.jpg
    یعنی اگر 3 اگست کی تصویر کا نام یہ ہو گا۔
    کوڈ:
    8_3.jpg
     
  7. ھارون رشید
    آف لائن

    ھارون رشید برادر سٹاف ممبر

    شمولیت:
    ‏5 اکتوبر 2006
    پیغامات:
    131,687
    موصول پسندیدگیاں:
    16,918
    ملک کا جھنڈا:
    جواب: جاوا میں خودکار طریقے سے تصاویر اور ٹیکسٹ تبدیل کرنا

    بہت خوب
    اچھاکام شروع ہوا ہے
     

اس صفحے کو مشتہر کریں