আপনি যে কোডটির সবচেয়ে খারাপ অংশটি স্থির করেছিলেন সে সম্পর্কে আপনি গর্বিত? [বন্ধ]


14

আমার কয়েকটি ছিল যার জন্য আমি গর্বিত এবং সেগুলির কয়েকটি আমার দ্বারা কয়েক বছর আগে লিখেছিল। এটি অগভীরভাবে বগি হওয়া উচিত নয়, কেবল খারাপ কোড।


8
পোস্ট করার জন্য অনেক বেশি, আমি কি আপনাকে আমার এসভিএন ইতিহাসের ফরোয়ার্ড করতে পারি? ;)
নিকোল

2
আপনি thedailywtf.com সম্পর্কে সচেতন ?

উত্তর:


20

আমি ফিক্সটির জন্য গর্বিত হওয়ার বিষয়ে জানি না কারণ এটি এতটা সুস্পষ্ট ছিল, তবে আমার মনে হচ্ছে সবচেয়ে ফিক্সিং কোডটি এটি ছিল।

if (userName=="John O'Reily") { userName= "John O''Reily";}
if (userName=="Stacy O'Neil") { userName= "Stacy O''Neil";}
if (userName=="Finnegan O'Connor") { userName= "Finnegan O''Connor";}
...
someSQL = "SELECT * from Users where UserName='" + userName + "'";

স্পষ্টতই পূর্ববর্তী বিকাশকারী প্রতিবার নতুন (সাধারণত আইরিশ) ব্যবহারকারী নতুন লাইন যুক্ত করতে থাকে তবে অ্যাপ্লিকেশনটিতে ত্রুটি পেতে শুরু করেছে।

ক্লাসের জন্য এটি কীভাবে স্থির হয়েছিল তা অনুশীলন হিসাবে ছেড়ে দেব।


আমি এসকিউএল দুটি সংলগ্ন স্ট্রিং আক্ষরিক সম্মতি গ্রহণ করি, তাই না?
আমারঘোষ

1
@ অমরঘোষ: হাহ?
জনএফএক্স

2
@ অমরঘোষ: এটি পালাতে পারে। ডাবল একক-কোটগুলি স্ট্রিং আক্ষরিক অভ্যন্তরে একক একক-কোটে হ্রাস পায়।
ম্যাসন হুইলার

ধন্যবাদ @Mason আমি ভেবেছিলাম UserName='John O''Reily'হয়ে যাবে UserName='John OReily'(যেমন কিভাবে সি সংলগ্ন স্ট্রিং লিটারেল concatenates), কিন্তু অনুপস্থিত সম্পর্কে চিন্তা করা হয়নি ':(
Amarghosh

1
@ জোএনএফএক্স - আমি অনুমান করছি যে এসকিউএল ইঞ্জেকশনটি দূর করতে আপনার ফিক্সটি মূল এসকিউএল বিবৃতিটিকে প্যারামিটারাইজড এসকিউএল রূপান্তরিত করেছে?
মেলিওরাটাস

7

আমার এ নিয়ে সত্যিই গর্ব করা উচিত নয়, তবে কোনও কারণে এটি সন্তুষ্টিজনক ছিল।

স্কুলে সিওবিএল থাকা ছাড়াও আমার কোনও অভিজ্ঞতা ছিল না, তবে আমি টোটেম মেরুটিতে কম মানুষ ছিল এবং আমাদের ওয়াই টু চেকিংয়ের জন্য একটি আউটসোর্সারে সংকলন উত্স কোড সরবরাহ করার দরকার ছিল। আমাদের একাধিক রুটিন সহ একক সিওবিওএল ফাইল ছিল যা একে অপরকে ফাইল, স্প্যাগেটি-জাতীয় বলে ডাকে এবং সংকলনের জন্য এটি আমাদের বর্তমান আইডিইতে লোড করা খুব বড় ছিল না। এটি কমপক্ষে দুটি শারীরিক ফাইলের মধ্যে টানা দরকার ছিল এবং অবশ্যই সেই ফাইলগুলি তাদের নিজস্ব ফাইলে প্রয়োজনীয় সমস্ত কিছু থাকা দরকার। (বা সম্ভবত, তাদের একসাথে লিঙ্ক করার একটি উপায় ছিল, তবে আমি সত্যিই কোবোলকে জানতাম না))

যাইহোক, আমি এটি প্রায় ১,০০,০০০ লাইন ফাইলটি হাতে নিয়েছি এবং একে অপরের থেকে স্বতন্ত্র যে দুটি রুটিন সেট পেয়েছি তা আবিষ্কার করার জন্য কয়েক ডজন এবং কয়েক ডজন রুটিনকে আলতো করে টেনে এনেছি এবং সুতরাং প্রায় ৫০,০০০ বা আরও লাইন দুটি পৃথক ফাইলে থাকতে পারে। (আমি মনে করি যে সংকলকটি সর্বাধিক ৮০,০০০ লাইন পরিচালনা করতে পারে, তাই এটি মোটামুটি সমানভাবে মিলে যাওয়া দরকার))

আমি একটি প্রাচীন ভাষা পড়ছিলাম যা আমি জানতাম না, এবং এখনও টাস্কে সফল ছিল।


5
সুতরাং আপনি ডাইনোসরে লিখিত একটি জীবাশ্ম বিচ্ছিন্ন করে দিয়েছিলেন। অথবা রক সার্জারি করছে। বা ... আমার উপমাটি পৃথক হয়ে গেল। সাহায্য করুন!
জন পুরী

2
সিবিওএল এর পঠনযোগ্যতার জন্য এক!

লাইন সীমা ছিল আইডিই কি ছিল?
রক

আমরা একটি কোবোল শপ এবং 65535 লাইন সহ একটি সরঞ্জাম (সংকলক বা সম্পাদক, নিশ্চিত নয়) এর একটি হার্ড সীমা রয়েছে। অনুরূপ কিছু হতে পারে।

6

আমি একটি ট্রিগার থেকে একটি কার্সার নিয়েছি এবং এক ঘন্টা থেকে এক মিনিটেরও কম 40,000 নতুন রেকর্ড সন্নিবেশ করানোর সময়টি কমিয়ে দিয়েছি। অবশেষে এর ফলে আমি হিমবাহ সময়ের চেয়ে কম কিছুতে 21 মিলিয়ন রেকর্ড সন্নিবেশ করতে সক্ষম হয়েছি কিন্তু আমরা ঠিক করার পরে 20 মিলিয়ন রেকর্ড আমদানি চেষ্টা করেছিলাম না, তাই আমাদের কতটা সময় সাশ্রয় হয়েছিল সে সম্পর্কে আমার পরিসংখ্যান নেই।


2
এবং অবশ্যই বিপণনে কেউ এটির গতি বাড়ানোর জন্য ক্রেডিট দাবি করেছে? :-)
টিন ম্যান

4

ট্রি নোডগুলিতে বিভিন্ন ক্রিয়াকলাপের জন্য কনফার্মেশন ডায়ালগ তৈরির জন্য একটি বেস শ্রেণি ছিল। আপনার ডায়ালগটিতে প্রদর্শিত হতে একটি বার্তা এবং এটি নিশ্চিত হয়ে থাকলে চালানোর জন্য ক্রিয়াকলাপ সরবরাহ করতে হবে। দুর্দান্ত সিস্টেম তবে কোনও গাছের নোড নির্বাচিত না হলে এটি কোনও বিশেষ পরিচালনার অনুমতি দেয় না। ফলস্বরূপ, একটি কথোপকথনের পাঠ্যটি বলেছে: "দয়া করে কোনও নির্বাচন করুন না"। আপনি যদি হ্যাঁ নির্বাচন করেন তবে এটি একটি ব্যতিক্রম ছুঁড়ে দিয়েছে। খুব সুন্দর ব্যবহারকারীর অভিজ্ঞতা।

আমি অবৈধ ক্রিয়াকলাপগুলি অক্ষম করে এটি ঠিক করেছি।


1
তখন 'না' বাছাই করা উচিত ছিল!
অ্যালান পিয়ার্স

2

আমি সবচেয়ে খারাপটি দেখেছি জাভা কোডটি একটি পাঠ্য কর্পাস থেকে মূল বাক্য বের করতে।

  • কোডটিতে কয়েকটি মন্তব্য ছিল (অক্ষম কোড মন্তব্য ছাড়াও) এবং এর নাম খারাপ ছিল।
  • অ্যালগরিদম রাজ্য পাবলিক স্ট্যাটিক ভেক্টরগুলিতে সংরক্ষণ করা হয়েছিল।
  • ভেক্টরগুলিতে মান সংরক্ষণের পরিবর্তে তিনি তাদের স্ট্রিং উপস্থাপনাগুলি সংরক্ষণ করেছিলেন।
  • ভেক্টরগুলি দরিদ্র মানুষের শ্রেণি ছিল (তারা সমান্তরাল ছিল, প্রতিটি সূচকে একটি 'উদাহরণ' ছিল)
  • অ্যালগরিদমটি উপ-অনুকূল ছিল (এন লগ এন সংস্করণ বোঝার জন্য সহজ পরিবর্তনের পরিবর্তে n ^ 2)

সত্য কথা বলতে গেলে, আমাদের সেখানে থাকা কয়েকটি সামগ্রীর সাথে এটি তুলনা করে কিছুই নয় তবে এর আগে এবং পরে মানের ক্ষেত্রে এখনও একটি বিশাল পার্থক্য রয়েছে। একটি ফাংশনের কোডের আগে এবং পরে নিম্নলিখিত বাস্তবটিকে বিবেচনা করুন:

এর আগে (পরে দেখার আগে এটি কী করে তা বোঝার চেষ্টা করুন!):

public static void getCluster() {
    count = new Vector();
    for (int i = 0; i < begin.size(); i ++)
        count.add("1");
    if (begin.size() > 1) {
        for (int i = 0; i < begin.size() - 1; i ++) {
            for (int j = i + 1; j < begin.size(); j ++) {
                int b1 = Integer.parseInt(begin.get(i).toString());
                int e1 = Integer.parseInt(end.get(i).toString());
                double w1 = Double.parseDouble(wght.get(i).toString());
                int c1 = Integer.parseInt(count.get(i).toString());
                int b2 = Integer.parseInt(begin.get(j).toString());
                int e2 = Integer.parseInt(end.get(j).toString());
                double w2 = Double.parseDouble(wght.get(j).toString());
                int c2 = Integer.parseInt(count.get(j).toString());
                int max = Math.max(e1, e2);
                boolean toRemove = true;
                if (b1 == b2) end.set(i, Integer.toString(max));
                if (b1 < b2) {
                    if (b2 < e1) end.set(i, Integer.toString(max));
                    else {
                        if ((b2 - e1) <= 3) end.set(i, Integer.toString(e2));
                        else toRemove = false;
                    }
                }
                if (b1 > b2) {
                    if (e2 >= b1) {
                        begin.set(i, Integer.toString(b2));
                        end.set(i, Integer.toString(max));
                    } else {
                        if ((b1 - e2) <= 3) {
                            begin.set(i, Integer.toString(b2));
                            end.set(i, Integer.toString(e1));
                        } else toRemove = false;
                    }
                }
                //System.out.println(b1 + ", " + e1 + ", " + b2 + ", " + e2 + " ---> " + begin.get(i).toString() + ", " + end.get(i).toString());
                if (toRemove) {
                    wght.set(i, Double.toString(w1 + w2));
                    count.set(i, Integer.toString(c1 + c2));
                    begin.removeElementAt(j);
                    end.removeElementAt(j);
                    wght.removeElementAt(j);
                    count.removeElementAt(j);
                    j --;
                } //end of if
            } //end of for j
        } //end of for i
    } //end of if
    //System.out.println(begin);
    //System.out.println(end);
    //System.out.println(wght);
    //System.out.println(count);
}

পরে:

/** Returns the result of merging all overlapping-with-leeway clusters into single combined clusters.
 * @param leeway The minimum number of word-spaces which must separate two clusters in order for them to not be overlapping.
 * @requires clusters != null
 * @requires leeway >= 0
 * @ensures result != null */ 
private static List<TermCluster> combineOverlappingClusters(Iterable<TermCluster> clusters, int leeway) {
    if (clusters == null) throw new NullPointerException("clusters");
    if (leeway < 0) throw new IllegalArgumentException("leeway < 0");

    //Sort to allow linear folding
    List<TermCluster> sortedClusters = Iter.sort(clusters, new Comparator<TermCluster>() {
        @Override public int compare(TermCluster o1, TermCluster o2) {
            return new Integer(o1.begin).compareTo(o2.begin);
        }
    });
    if (sortedClusters.size() == 0)
        return sortedClusters;

    //Combine left-to-right
    List<TermCluster> result = new ArrayList<TermCluster>();
    TermCluster acc = sortedClusters.get(0);
    for (TermCluster cluster : sortedClusters.subList(1, sortedClusters.size())) {
        if (acc.isOverlappingWithLeeway(cluster, leeway)) {
            //combine
            acc = acc.combineWith(cluster);
        } else {
            //next
            result.add(acc);
            acc = cluster;
        }            
    }
    result.add(acc); //leftovers

    return result;
}

1

আমার প্রথম প্রোগ্রামিং কাজটি ইনস্টলশিল্ডে ইনস্টলার লিখছিল। আমি একটি স্ক্রিপ্ট উত্তরাধিকারসূত্রে পেয়েছি যা হাজার হাজার লাইনের কোনও ফাংশন ছাড়াই , কেবল গোটোস। মনটা বগল ছিল। আমি এটিকে আবার লিখলাম, এগুলি সমস্ত সুন্দর এবং মডুলার এবং ডেটা চালিত করেছিলাম, যাতে আমাকে বাইনারি / আর্ট / ইত্যাদি দেওয়া যায়। এবং সপ্তাহের চেয়ে এক ঘন্টার মধ্যে একটি নতুন ইনস্টলার চালু করুন + এটি আগের লোকটি নিয়েছে। আমি নিজেকে নিয়ে খুব গর্বিত ছিলাম।


0

আমি মনে করি কিছুই এমনকি আসে পাসে এই :

function pmn_Sort(strBy)

local tblA = {};
local tblB = {};
local tblC = {};
local tblD = {};
local tblE = {};
local tblF = {};
local tblG = {};
local tblH = {};
local tblI = {};
local tblJ = {};
local tblK = {};
local tblL = {};
local tblM = {};
local tblN = {};
local tblO = {};
local tblP = {};
local tblQ = {};
local tblR = {};
local tblS = {};
local tblT = {};
local tblU = {};
local tblV = {};
local tblW = {};
local tblX = {};
local tblY = {};
local tblZ = {};
local tblOT = {};

local iA = 0;
local iB = 0;
local iC = 0;
local iD = 0;
local iE = 0;
local iF = 0;
local iG = 0;
local iH = 0;
local iI = 0;
local iJ = 0;
local iK = 0;
local iL = 0;
local iM = 0;
local iN = 0;
local iO = 0;
local iP = 0;
local iQ = 0;
local iR = 0;
local iS = 0;
local iT = 0;
local iU = 0;
local iV = 0;
local iW = 0;
local iX = 0;
local iY = 0;
local iZ = 0;
local iOT = 0;

    if strBy == "Name" then

        strSort = "Name";
        numPlcount = ListBox.GetCount("Playlist");
        numPLitem = 1;
        numPLadd = 0;
        while numPLitem &lt;= numPlcount do

            strPLtxt = ListBox.GetItemText("Playlist", numPLitem);
            strPLdata = ListBox.GetItemData("Playlist", numPLitem);
            strPLleft = String.Left(strPLtxt, 1);
            if strPLleft == "a" or strPLleft == "A" then

            iA = iA + 1;
            tblA[iA] = strPLdata;

            elseif strPLleft == "b" or strPLleft == "B" then

            iB = iB + 1;
            tblB[iB] = strPLdata;

            elseif strPLleft == "c" or strPLleft == "C" then

            iC = iC + 1;
            tblC[iC] = strPLdata;

            elseif strPLleft == "d" or strPLleft == "D" then

            iD = iD + 1;
            tblD[iD] = strPLdata;

            elseif strPLleft == "e" or strPLleft == "E" then

            iE = iE + 1;
            tblE[iE] = strPLdata;

            elseif strPLleft == "f" or strPLleft == "F" then

            iF = iF + 1;
            tblF[iF] = strPLdata;

            elseif strPLleft == "g" or strPLleft == "G" then

            iG = iG + 1;
            tblG[iG] = strPLdata;

            elseif strPLleft == "h" or strPLleft == "H" then

            iH = iH + 1;
            tblH[iH] = strPLdata;

            elseif strPLleft == "i" or strPLleft == "I" then

            iI = iI + 1;
            tblI[iI] = strPLdata;

            elseif strPLleft == "j" or strPLleft == "J" then

            iJ = iJ + 1;
            tblJ[iJ] = strPLdata;

            elseif strPLleft == "k" or strPLleft == "K" then

            iK = iK + 1;
            tblK[iK] = strPLdata;

            elseif strPLleft == "l" or strPLleft == "L" then

            iL = iL + 1;
            tblL[iL] = strPLdata;

            elseif strPLleft == "m" or strPLleft == "M" then

            iM = iM + 1;
            tblM[iM] = strPLdata;

            elseif strPLleft == "n" or strPLleft == "N" then

            iN = iN + 1;
            tblN[iN] = strPLdata;

            elseif strPLleft == "o" or strPLleft == "O" then

            iO = iO + 1;
            tblO[iO] = strPLdata;

            elseif strPLleft == "p" or strPLleft == "P" then

            iP = iP + 1;
            tblP[iP] = strPLdata;

            elseif strPLleft == "q" or strPLleft == "Q" then

            iQ = iQ + 1;
            tblQ[iQ] = strPLdata;

            elseif strPLleft == "r" or strPLleft == "R" then

            iR = iR + 1;
            tblR[iR] = strPLdata;

            elseif strPLleft == "s" or strPLleft == "S" then

            iS = iS + 1;
            tblS[iS] = strPLdata;

            elseif strPLleft == "t" or strPLleft == "T" then

            iT = iT + 1;
            tblT[iT] = strPLdata;

            elseif strPLleft == "u" or strPLleft == "U" then

            iU = iU + 1;
            tblU[iU] = strPLdata;

            elseif strPLleft == "v" or strPLleft == "V" then

            iV = iV + 1;
            tblV[iV] = strPLdata;

            elseif strPLleft == "w" or strPLleft == "W" then

            iW = iW + 1;
            tblW[iW] = strPLdata;

            elseif strPLleft == "x" or strPLleft == "X" then

            iX = iX + 1;
            tblX[iX] = strPLdata;

            elseif strPLleft == "y" or strPLleft == "Y" then

            iY = iY + 1;
            tblY[iY] = strPLdata;

            elseif strPLleft == "z" or strPLleft == "Z" then

            iZ = iZ + 1;
            tblZ[iZ] = strPLdata;

            else

            iOT = iOT + 1;
            tblOT[iOT] = strPLdata;

            end

            numPLitem = numPLitem + 1;

        end

        ListBox.DeleteItem("Playlist", LB_ALLITEMS);

        for ii, id in tblA do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblB do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblC do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblD do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblE do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblF do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblG do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblH do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblI do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblJ do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblK do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblL do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblM do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblN do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblO do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblP do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblQ do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblR do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblS do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblT do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblU do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblV do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblW do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblX do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblY do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end     

        for ii, id in tblZ do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

        for ii, id in tblOT do

            if id ~= "" then

                numPLadd = numPLadd + 1;
                strPLtxt = String.SplitPath(id).Filename..String.SplitPath(id).Extension
                ListBox.AddItem("Playlist", strPLtxt, id);

            end

        end

    elseif strBy == "Type" then

        strSort = "Type";

        if File.DoesExist(_ProgramFilesFolder.."\\MediaX\\playlist.mx") == true then

            play_file2 = TextFile.ReadToTable(_ProgramFilesFolder.."\\MediaX\\playlist.mx");

            if play_file2 then
                ListBox.DeleteItem("Playlist", -1);

                for rl,rPath in play_file2 do
                    r2Path = String.TrimLeft(rPath, nil);
                    ListBox.AddItem("Playlist", String.SplitPath(r2Path).Filename..String.SplitPath(r2Path).Extension, r2Path);
                end
            end
        end
    end
end

ঠিক করা? হ্যাঁ, এর বেশি ব্যাখ্যা দেওয়ার দরকার নেই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.