線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:661
推到 Plurk!
推到 Facebook!

有關於讀檔的問題

尚未結案
residue
中階會員


發表:90
回覆:153
積分:53
註冊:2003-07-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-13 16:55:27 IP:203.64.xxx.xxx 未訂閱
請問各問大大,下圖示一份txt檔 的內容,其中每一個黑色的小方塊為一個段落,每一個段落有兩筆資料,請問各位大大要如何把資料依序讀進來??    謝謝!!    
blk5743
高階會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-13 19:00:43 IP:61.66.xxx.xxx 未訂閱
     #include 
#pragma hdrstop    #include 
#include <math.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------    void __fastcall TForm1::FormCreate(TObject *Sender)
{
    FILE *fp = fopen("C:\\a.txt","rt");
    float value[10] = {0};
    char Temp[20] = {0},ch;
    int i = 0,j = 0;        if ( fp != NULL )
    {
        while ( (ch = fgetc(fp)) != EOF )
        {
            if ( isdigit(ch) || (ch == '.') )
                Temp[i  ] = ch;
            else
            {
                value[j  ] = atof(Temp);
                i = 0;
                ZeroMemory(Temp,sizeof(Temp));
            }
        }
        fclose(fp);
    }
}
residue
中階會員


發表:90
回覆:153
積分:53
註冊:2003-07-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-13 21:35:36 IP:219.68.xxx.xxx 未訂閱
感謝大大的回覆,但我在程式中多加一段 Memo1->SelText = value[j ];但為何在Memol中顯示卻是0呢??
blk5743
高階會員


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-14 08:40:55 IP:61.66.xxx.xxx 未訂閱
引言: 感謝大大的回覆,但我在程式中多加一段 Memo1->SelText = value[j ];但為何在Memol中顯示卻是0呢??
residue你好 假設j = 0; Temp = 123; value[j ] = atof(Temp);// j = 0 => j = 1; value[0] = 123, value[1] = 0; Memo1->SelText = value[j ];// j = 1 => value[1] = 0
ubong
一般會員


發表:2
回覆:42
積分:23
註冊:2002-10-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-16 22:27:10 IP:218.163.xxx.xxx 未訂閱
void __fastcall TForm1::FormCreate(TObject *Sender) { FILE *fp = fopen("C:\\a.txt","rt"); float value[10] = {0}; char Temp[20] = {0},ch; int i = 0,j = 0; bool finish=false; if ( fp != NULL ) { while ( (ch = fgetc(fp)) != EOF ) { if ( isdigit(ch) || (ch == '.') ) {Temp[i ] = ch; finish=false; else { if(!finish) { Temp[i]='\0'; value[j ] = atof(Temp); finish=true; Temp[0]='\0';} i = 0; // ZeroMemory(Temp,sizeof(Temp)); } } fclose(fp); } } 這位仁兄忘記給字串的結尾加上結束碼'\0' ubong
------
ubong
blk5743
高階會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-01-17 09:04:54 IP:61.66.xxx.xxx 未訂閱
引言: ZeroMemory(Temp,sizeof(Temp));
u你好bong 這一段會把Temp的每個元素變成0 所以自然會在字串尾巴加上'\0'(原本就是'\0') 而且這段Code我試過了,對他的Case是可以用的
系統時間:2024-05-19 18:32:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!