我最近被分配了一個任務,我需要創建一個程序來編輯Visual C#中的文件。該文件是一個具有多個固定字符寬度行的順序ASCII文本文件,其基本結構如下所示:解析順序ASCII文件進行編輯 - Visual C#
每個組是一個參數,並且文件中可以包含數百個這樣的參數。每個功率放大器都有一定數量的列,但每個功率放大器的列數都不相同。此外,每個記錄中還有一些可選字段,因此可以計算某些字段之間的額外空間。每個領域也有1個空間的分隔符。我不確定自己是否過於徹底,但我認爲我提供的信息越多,就越容易有人幫助我。
從本質上講,我想創建一個圖形用戶界面中,用戶可以選擇一個參數記憶,然後能夠參數
我有一個小C#經歷了整個集團內編輯任何字段,但我很難弄清楚什麼是最好的方法來完成這一點。我最初的想法是將文件解析爲數組,搜索每個參數名稱(可能使用正則表達式?),在瀏覽器中顯示所有參數名稱。從那裏用戶將能夠選擇他們想要編輯的參數。然後,程序會再次搜索數組中的選定參數,然後將記錄解析到文本框中,以便進行編輯。
我不確定這是否是實現此目的最有效的方式,而且我有點卡在如何實際解析文件以將字段讀入文本框中。我搜索了許多不同的論壇進行文件解析,但大多數我發現與逗號分隔的文件相關的主題並不真正適用於我正在使用的文件類型。任何幫助將不勝感激,如果你需要我詳細說明任何事情,請隨時問我。感謝您的幫助。
感謝您的快速回答。我將在週一開始編寫代碼,希望一切順利。 – almostProgramming
我忘記提及的是每個參數中還有其他可選的PA線。因此,例如,PA31和PA41之間可能存在PA32。我不太清楚這會如何影響你的答案,但是在寫我的第一個問題的時候,我的思想開始滑落了。此外,PAGroup課程的目的是什麼?我想它會照顧多個PA的搜索?再次感謝你的幫助。 – almostProgramming
PAGroup將負責讀取初始PA ##字段,創建相應的IPAObject派生對象,將該行的其餘部分傳遞給該對象,然後在完成所有操作時包含對象列表。這樣,如果用戶決定插入新的可選PA線,PAGroup將創建一個新對象並將其放入其所屬的列表中。然後,當他們保存時,整個過程反過來。 PAGroup創建/接收輸出流,然後告訴列表中的每個對象按順序將自己寫入流。 – acjay