อะไรคือรหัสที่แย่ที่สุดที่คุณแก้ไขซึ่งคุณภาคภูมิใจ [ปิด]


14

ฉันมีบางอย่างที่ฉันภาคภูมิใจและบางส่วนของพวกเขาเขียนด้วยตัวเองไม่กี่ปีที่ผ่านมา มันไม่จำเป็นต้องเป็นรถบักกี้ แต่เป็นรหัสที่ไม่ดี


8
มีการโพสต์มากเกินไปฉันจะส่งประวัติ SVN ให้คุณได้ไหม ;)
นิโคล

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 + "'";

เห็นได้ชัดว่านักพัฒนาก่อนหน้านี้เพิ่งเพิ่มบรรทัดใหม่ทุกครั้งที่ผู้ใช้ใหม่ (โดยปกติชาวไอริช) เริ่มได้รับข้อผิดพลาดในแอปพลิเคชัน

ฉันจะปล่อยให้มันเป็นแบบฝึกหัดสำหรับชั้นเรียนว่ามันได้รับการแก้ไขอย่างไร


ฉันใช้ SQL เชื่อมตัวอักษรสตริงที่อยู่ติดกันสองตัวเข้าด้วยกันใช่ไหม
Amarghosh

1
@Amarghosh: อืม?
JohnFx

2
@Amarghosh: มันเป็นการหลบหนี เครื่องหมายคำพูดเดี่ยวคู่ลดเป็นเครื่องหมายคำพูดเดี่ยวเดี่ยวภายในสตริงตัวอักษร
Mason Wheeler

ขอบคุณ @Mason ฉันคิดว่าUserName='John O''Reily'จะกลายเป็นUserName='John OReily'(เช่นวิธี C เชื่อมต่อตัวอักษรสตริงที่อยู่ติดกัน) แต่ไม่ได้คิดเกี่ยวกับการขาดหายไป':(
Amarghosh

1
@JohnFx - ฉันเดาว่าการแก้ไขของคุณเปลี่ยนคำสั่ง SQL ดั้งเดิมเป็น SQL แบบมีพารามิเตอร์เพื่อกำจัดการฉีด SQL?
Melioratus

7

ฉันไม่ควรภูมิใจในสิ่งนี้ แต่ด้วยเหตุผลบางอย่างมันก็น่าพอใจ

นอกเหนือจากการมีภาษาโคบอลในโรงเรียนฉันไม่มีประสบการณ์ แต่ฉันเป็นคนต่ำบนเสาโทเท็มและเราจำเป็นต้องให้ซอร์สโค้ดการคอมไพล์แก่ผู้ให้บริการภายนอกเพื่อตรวจสอบ Y2K เรามีไฟล์ภาษาโคบอลเดี่ยวที่มีกิจวัตรหลายอย่างที่เรียกกันในไฟล์เหมือนปาเก็ตตี้และมันใหญ่เกินไปที่จะโหลดใน IDE ปัจจุบันของเราสำหรับการรวบรวม มันต้องถูกแยกออกเป็นไฟล์ฟิสิคัลอย่างน้อยสองไฟล์และแน่นอนไฟล์เหล่านั้นจำเป็นต้องมีทุกสิ่งที่พวกเขาต้องการในไฟล์ของตัวเอง (หรืออาจมีวิธีที่จะเชื่อมโยงพวกเขาเข้าด้วยกัน แต่ฉันไม่รู้จักภาษาโคบอล)

อย่างไรก็ตามฉันใช้ไฟล์นี้ประมาณ 100,000 ไฟล์และค่อยๆแยกชุดคำสั่งหลายสิบชุดเพื่อหาชุดคำสั่งสองชุดที่เป็นอิสระจากกันและอาจมีอยู่ในสองไฟล์แยกกันแต่ละเส้นประมาณ 50,000 เส้น (ฉันคิดว่าจำนวนสูงสุดที่คอมไพเลอร์สามารถจัดการได้คือประมาณ 80,000 บรรทัดดังนั้นจึงจำเป็นต้องจับคู่อย่างเท่าเทียมกัน)

ฉันกำลังอ่านภาษาโบราณที่ฉันไม่รู้และยังประสบความสำเร็จในงาน


5
ดังนั้นคุณกำลังผ่าฟอสซิลที่เขียนไว้ในไดโนเสาร์ หรือทำการผ่าตัดหิน หรือ ... การเปรียบเทียบของฉันแตกสลาย ช่วยด้วย!
Jon Purdy

2
หนึ่งขึ้นสำหรับการอ่าน COBOL!

IDE ที่มีขีด จำกัด บรรทัดคืออะไร
โกง

เราเป็นร้าน Cobol และมีข้อ จำกัด อย่างหนักกับหนึ่งในเครื่องมือ (คอมไพเลอร์หรือบรรณาธิการไม่แน่ใจ) ด้วย 65535 บรรทัด อาจเป็นสิ่งที่คล้ายกัน

6

ฉันหยิบเคอร์เซอร์ออกจากทริกเกอร์และลดเวลาในการแทรกเร็กคอร์ดใหม่ 40,000 รายการจากหนึ่งชั่วโมงเหลือน้อยกว่าหนึ่งนาที ในที่สุดสิ่งนี้ทำให้ฉันสามารถแทรก 21 ล้านเร็กคอร์ดในบางเวลาน้อยกว่ายุคน้ำแข็ง แต่เราไม่เคยลองนำเข้าเร็กคอร์ด 20 ล้านจนกว่าจะมีการแก้ไขดังนั้นฉันจึงไม่มีสถิติเกี่ยวกับเวลาที่เราบันทึกไว้


2
และแน่นอนว่ามีคนในแวดวงการตลาดอ้างสิทธิ์ในการเร่งความเร็ว? :-)
Tin Man

4

มีคลาสฐานสำหรับการสร้างกล่องโต้ตอบการยืนยันสำหรับการดำเนินการที่แตกต่างกันในโหนดต้นไม้ คุณจะต้องให้เฉพาะข้อความที่จะแสดงในกล่องโต้ตอบและการกระทำที่จะทำงานหากได้รับการยืนยัน ระบบดี แต่ไม่อนุญาตการจัดการพิเศษในกรณีที่ไม่มีการเลือกโหนดต้นไม้ ด้วยเหตุนี้ข้อความในกล่องโต้ตอบข้อใดข้อหนึ่งจึงกล่าวว่า: "โปรดเลือกไม่" หากคุณเลือกใช่จะมีข้อผิดพลาดเกิดขึ้น ประสบการณ์การใช้งานที่ดีมากแน่นอน

ฉันแก้ไขสิ่งนี้โดยปิดการใช้งานการดำเนินการที่ไม่ถูกต้อง


1
ควรเลือก 'ไม่' แล้ว!
Alan Pearce

2

ที่แย่ที่สุดที่ฉันเคยเห็นคือโค้ด Java บางอันเพื่อดึงประโยคสำคัญจากคลังข้อความ

  • รหัสมีความคิดเห็นเล็กน้อย (นอกเหนือจากความคิดเห็นของรหัสที่ปิดใช้งาน) และมีชื่อที่ไม่ดี
  • สถานะอัลกอริทึมถูกเก็บไว้ในสเตติกแบบคงที่สาธารณะ
  • แทนที่จะเก็บค่าไว้ในเวกเตอร์เขาเก็บการแทนค่าสตริงของพวกเขา
  • เวกเตอร์เป็นชั้นเรียนของชายยากจน (พวกเขาขนานกันแต่ละดัชนีเป็น 'อินสแตนซ์')
  • อัลกอริทึมนั้นเหมาะสมที่สุดย่อย (n ^ 2 แทนที่จะเป็นเวอร์ชั่นที่เข้าใจง่ายกว่า n log n)

เพื่อความเป็นธรรมนี่คือไม่มีอะไรเทียบกับบางสิ่งที่เรามี แต่ก็ยังมีความแตกต่างอย่างมากในคุณภาพก่อนและหลัง พิจารณาตามจริงก่อนและหลังรหัสของหนึ่งฟังก์ชัน:

ก่อนหน้า (ลองคิดดูว่ามันทำอะไรก่อนที่จะดูหลังจาก!):

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

งานเขียนโปรแกรมแรกของฉันคือการเขียนโปรแกรมติดตั้งใน InstallShield ฉันสืบทอดสคริปต์ที่มีหลายพันบรรทัดโดยไม่มีฟังก์ชั่นมีเพียง gotos มันเป็นความคิดที่จะเชื่อได้ ฉันเขียนใหม่ทำให้มันสวยและเป็นโมดูลและขับเคลื่อนข้อมูลเพื่อที่ฉันจะได้รับไบนารี / art / etc และเปิดตัวติดตั้งใหม่ภายในไม่ถึงหนึ่งชั่วโมงแทนที่จะเป็นสัปดาห์ + มันใช้เวลาคนที่แต่งตัวประหลาดก่อนหน้านี้ ฉันภูมิใจในตัวเองมาก


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.