jchuangjchuang
一般會員
發表:4 回覆:10 積分:2 註冊:2007-01-10
發送簡訊給我
|
Dear all,
我之前是用turbo C 做的,現在試著轉成bcb。
這程是主要是要將一個兩進位的檔案開啟並畫出圖形,
可是當我在開啟第二個,或是第三個時,確無法開啟,
我試著用 ShowMessage(cp); 來看發生什麼事,結果發現第二次以後其檔案路徑,有問題,
想請問,這是什麼原因呢?
以下為程式及我要畫的三個兩進位檔。
<textarea class="c#" rows="10" cols="60" name="code">//---------------------------------------------------------------------------
#include
#pragma hdrstop
#include "Unit1.h"
#include
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
String file_name;
#define ary_len_byt (10800)
#define ary_len_word (ary_len_byt/2)
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
FILE *fp;
char ch;
unsigned char CharA[ary_len_byt];
unsigned short WordA[ary_len_word];
int i=0,j=0;
static unsigned char open_idx=0;
char* cp;
if ( open_idx==0 )
{
cp = Edit1->Text.c_str();
ShowMessage(cp);
if ( (fp=fopen(cp,"rb"))==NULL )
{
// printf("open file error ! \n");
ShowMessage(AnsiString("Can't open R file"));
}
/*read binary file.*/
fread(&CharA,sizeof(CharA),1,fp);
/*
for( i=0;iAdd(WordA[j],j,clRed);
j ;
}
fclose(fp);
open_idx ;
}
else if ( open_idx==1 )
{
cp = Edit1->Text.c_str();
ShowMessage(cp);
if ( (fp=fopen(cp,"rb"))==NULL )
{
ShowMessage(cp);
ShowMessage(AnsiString("Can't open G file"));
exit(1);
}
/*read binary file.*/
fread(&CharA,sizeof(CharA),1,fp);
/*
for( i=0;iAddX(WordA[j],j,clGreen);
j ;
}
fclose(fp);
open_idx ;
}
else if ( open_idx==2 )
{
cp = Edit1->Text.c_str();
ShowMessage(cp);
if ( (fp=fopen(cp,"rb"))==NULL )
{
ShowMessage(cp);
ShowMessage(AnsiString("Can't open B file"));
exit(1);
}
/*read binary file.*/
fread(&CharA,sizeof(CharA),1,fp);
for ( i=0;iAddX(WordA[j],j,clBlue);
j ;
}
fclose(fp);
open_idx ;
}
else
{
ShowMessage(AnsiString("you can't add chart any more."));
}
//************************************************//
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DirectoryListBox1Change(TObject *Sender)
{
FileListBox1->Directory=DirectoryListBox1->Directory;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DriveComboBox1Change(TObject *Sender)
{
DirectoryListBox1->Drive=DriveComboBox1->Drive;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FilterComboBox1Change(TObject *Sender)
{
FileListBox1->Mask=FilterComboBox1->Mask;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FileListBox1Change(TObject *Sender)
{
file_name=FileListBox1->FileName;
Edit1->Text=file_name;
if ( file_name != "" )
{
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
FilterComboBox1->Filter="*.txt |*.txt";
Chart1->RemoveAllSeries();//?清除Chart1上所有舊?Series
Chart1->View3D=false;//?不要?3D?立體
Chart1->Legend->Visible=true;//秀圖例說明
//?設定此?char?Title?名稱
//(是?StringList?不是?String?所以不能用?Chart1->Title->Text="xxx"?...)
Chart1->Title->Text->Clear();
Chart1->Title->Text->Add("Shading table");
//*****************************************//
//?動態宣告一個??THorizBarSeries?型態的?Series
//?其它的?Series?型態有哪些?請看?TChartSeries?之?Help
// Series1=newTHorizBarSeries(Chart1);
Series1->ParentChart=Chart1;
Series2->ParentChart=Chart1;
Series3->ParentChart=Chart1;
//Series1->Marks->Visible=true;//?設定要提示說明
Series1->Marks->Style=smsValue;//?提示說明內容為?Label
//(註)?Series1->Marks->Style?內容請參考?TSeriesMarksStyle?之?Help
Series1->SeriesColor=clRed; //?設線條1為藍色,不設則自動給色
Series2->SeriesColor=clGreen; //?設線條1為藍色,不設則自動給色
Series3->SeriesColor=clBlue; //?設線條1為藍色,不設則自動給色
Series1->Title='R';
Series2->Title='G';
Series3->Title='B';
//?輸入假資料
int V;//?Value
String L;//Label
for ( int i=1;i<=8;i )
{
V=i;//Series值
L="V" IntToStr(i);//軸名稱
//Series1->Add(V,L,clRed);
Series1->AddX(V,L,clRed);
}
for ( int i=1;i<=8;i )
{
V=i;//Series值
L="V" IntToStr(i);//軸名稱
//Series1->Add(V,L,clRed);
Series2->AddX(V,L,clBlue);
}
for ( int i=3;i<9;i )
{
V=i;//Series值
L="V" IntToStr(i);//軸名稱
//Series1->Add(V,L,clRed);
Series3->AddX(V,L,clGreen);
}
//*****************************************//
//ShowMessage(AnsiString("Can't open R file"));
}
//---------------------------------------------------------------------------
</textarea>
編輯記錄
taishyang 重新編輯於 2007-06-27 11:41:30, 註解 將文章分類成[問題]‧ taishyang 重新編輯於 2007-06-27 11:41:30, 註解 將文章分類成[問題]‧
|