全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:952
推到 Plurk!
推到 Facebook!

關於文字檔處理

尚未結案
ultradev
一般會員


發表:5
回覆:2
積分:1
註冊:2004-11-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-25 20:29:08 IP:218.168.xxx.xxx 未訂閱
請問要如何從一文字檔中擷取其中一部份成為新檔呢? 例如 NO. LOCATION PRODUCTS DESCRIPTION ==== ========= ================ ====================================== 1 C1 858565 dkeidkeidk, kdiekdke 2 C2 546546 biehdk,dkdiek, dkeidkd 這種格式,同一行的資料以TAB間隔,若現在我想把前三欄的資料擷取出來, 並縮小間隔,就像這樣 NO. LOCATION PRODUCTS ==== ========= ================ 1 C1 858565 2 C2 546546 我有參考之前的討論,會用TStringList和Memo配合讀寫檔案了, 不過請問要如何進行下一步呢? Thanks!!
m8815010
版主


發表:99
回覆:372
積分:289
註冊:2003-11-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-25 21:30:57 IP:59.104.xxx.xxx 未訂閱
引言: 請問要如何從一文字檔中擷取其中一部份成為新檔呢? 例如 NO. LOCATION PRODUCTS DESCRIPTION ==== ========= ================ ====================================== 1 C1 858565 dkeidkeidk, kdiekdke 2 C2 546546 biehdk,dkdiek, dkeidkd 這種格式,同一行的資料以TAB間隔,若現在我想把前三欄的資料擷取出來, 並縮小間隔,就像這樣 NO. LOCATION PRODUCTS ==== ========= ================ 1 C1 858565 2 C2 546546 我有參考之前的討論,會用TStringList和Memo配合讀寫檔案了, 不過請問要如何進行下一步呢? Thanks!!
ultradev你好: 假設你的 class="code"> void __fastcall TForm1::Button1Click(TObject *Sender) { TStringList* data = new TStringList; TStringList* puppet = new TStringList; TStringList* rlt = new TStringList; data->LoadFromFile("C:\\test.txt"); for (int i=0;iCount;i ) { puppet->CommaText=data->Strings[i]; if (puppet->Count>3) rlt->Add(puppet->Strings[0] " " puppet->Strings[1] " " puppet->Strings[2]); } rlt->SaveToFile("C:\\result.txt"); delete data; delete puppet; delete rlt; } !
m8815010
版主


發表:99
回覆:372
積分:289
註冊:2003-11-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-25 21:33:23 IP:59.104.xxx.xxx 未訂閱
引言: 請問要如何從一文字檔中擷取其中一部份成為新檔呢? 例如 NO. LOCATION PRODUCTS DESCRIPTION ==== ========= ================ ====================================== 1 C1 858565 dkeidkeidk, kdiekdke 2 C2 546546 biehdk,dkdiek, dkeidkd 這種格式,同一行的資料以TAB間隔,若現在我想把前三欄的資料擷取出來, 並縮小間隔,就像這樣 NO. LOCATION PRODUCTS ==== ========= ================ 1 C1 858565 2 C2 546546 我有參考之前的討論,會用TStringList和Memo配合讀寫檔案了, 不過請問要如何進行下一步呢? Thanks!!
ultradev你好: 假設你的 class="code"> void __fastcall TForm1::Button1Click(TObject *Sender) { TStringList* data = new TStringList; TStringList* puppet = new TStringList; TStringList* rlt = new TStringList; data->LoadFromFile("C:\\test.txt"); for (int i=0;iCount;i ) { puppet->CommaText=data->Strings[i]; if (puppet->Count>3) rlt->Add(puppet->Strings[0] " " puppet->Strings[1] " " puppet->Strings[2]); } rlt->SaveToFile("C:\\result.txt"); delete data; delete puppet; delete rlt; } !
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-11-25 22:03:05 IP:61.152.xxx.xxx 未訂閱
提供另外一種方式
//---------------------------------------------------------------------------    #include 
#include 
#include 
#pragma hdrstop    #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    FILE *fp;
    AnsiString TempStr;
    UCHAR i,j,k;
    char Temp[50],Result[100][50];
    char FileName[20],FileName2[20];
    strcpy(FileName,"C:\\edit1.txt");
    strcpy(FileName2,"C:\\edit2.txt");        TStringList *sl=new TStringList;
    sl->LoadFromFile(FileName);
    ZeroMemory(Temp,sizeof(Temp));        if ( access(FileName,0) != 0 )
    {//確認檔案存在
        strcat(FileName,"can not find");
        ShowMessage(FileName);
        return;
    }
    if ( (fp = fopen(FileName2,"w")) == NULL )
    {//確認可以開檔
        strcat(FileName2,"can not find");
        ShowMessage(FileName2);
        return;
    }
    for( i = 0; i < sl->Count; i  )
    {
        k = 0;
        strcpy(Temp,sl->Strings[i].c_str());
        for ( j = 0; j < strlen(Temp); j   )
        {
            if ( Temp[j] == 0x09 )//tab
            {
                k  ;
                if ( k == 3 )//一行找到第三次
                    break;
            }
        }
        fprintf(fp,"%s\r\n",sl->Strings[i].SubString(1,j).c_str());
    }
    fclose(fp);
}
系統時間:2024-06-19 0:15:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!