當前位置:首頁 » 編程語言 » C語言dxf文件讀寫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

C語言dxf文件讀寫

發布時間: 2022-06-09 14:26:50

『壹』 如何用c語言讀取tif圖片每個點的RGB值並進行判斷

這個用matlab比較容易,c的沒試過。

『貳』 設計程序讀取格式為dxf文件的簡單圖形

你可以考慮用Open DWG 的Toolkit操作!我上次幫人家的做的是從DWG文件里提取數據,呵呵,和你的是相反的!有興趣交流下,QQ:1512287

『叄』 C語言 BMP文件

BMP格式文件是點陣圖,裡面保存的是像素點的紅\綠\藍三原色的亮度,並沒有保存什麼特定的圖形,所以BMP文件不能直接讀取出特定圖形的個數.
當然通過圖形識別技術,也是可以識別出直線,圓等幾何信息.
文字識別技術可以識別出其中包含的文字信息
臉部識別技術可以識別出人臉部的特徵信息.
這些演算法都比較復雜.都是不能直接識別的.

當然也有能直接讀出特定圖形的文件格式,這些格式統稱矢量圖,比如.dwg(AutoCAD), .dxf, .wmf等.
其文件內容就是記錄圖片的什麼地方有什麼圖形.

『肆』 C語言讀dxf文件的程序

http://www.diybl.com/course/3_program/c++/cppsl/200855/113046.html

『伍』 一些文件格式

不知你所指的是不是「.txt」 「.doc」?
.txt是文本文檔格式,是記事本的格式
.doc是word文檔格式,用Microsoft Word軟體可打開

%A%、%B%:DOS版的WPS臨時文件;
3DS:矢量格式,為3D Studio的動畫原始圖形文件,含有紋理和光照信息;
ACE:ACE壓縮文件格式;
AI: 矢量格式,是久負盛名的繪圖軟體Adobe Illustrator文件格式;
AIF:Apple計算機的音頻文件格式;
ANI:WIN95中動畫滑鼠指針文件;
ARJ:ARJ軟體壓縮的文件;
ASC:代碼文件;
ASF:微軟的流媒體格式;

ASX:ASF文件的索引格式;
ASM:匯編程序文件;
ASP:ASP即Active Server Page的縮寫。它是一種包含了使用VB Script或Jscript腳本程序代碼的網頁。
AVI:視頻與音頻交錯文件;最新的MPEG4也採用這種後綴;
BAK:備份文件;
BAS:BASIC中的源程序文件;
BAT:DOS下的批處理文件。Autoexec.bat為自動批處理文件,它是特殊的批處理文件;
BIN:光碟鏡像文件;有時是一些軟體的數據文件;
BMP:是Windows所使用的基本點陣圖格式,是小畫筆就能輕松創建的文件;
BZ2:壓縮文件格式;
C :C語言中的源程序文件;
CAB:微軟的壓縮文件格式,壓縮率很高;
CDR:矢量格式,是Corel Draw標准文件格式;
CDT:Corel Draw中的模板文件;
CED:CCED文件格式;
CEL:3DS中的貼圖文件;
CGM:是壓縮的矢量圖形文件,Winword可以打開;
CHK:檢查磁碟命令CHKDSK發現的目錄或文件分配表中的錯誤,校正系統後的文件;
CMX:Corel Draw展示交換文件;
CMV:是Corel Move平面動畫軟體中的動畫演示文件;
COB:COBOL語言源程序文件;
COM:可執行的二進制代碼系統程序文件,特點非常 短小精悍 ,長度有限制;
CPT:點陣圖和矢量圖都有,是Corel Photo-Paint的文件格式;
CRD:Windows中的卡版盒文件;
DAT:視頻影像文件,是Video CD(VCD)或Karaoke CD(卡拉OK CD)其於MPEG壓縮方法的一種,注意它同數據文件同名;有時是數據文件。
DB: Paradox資料庫格式。
DBT:FOXBASE中的資料庫文件的輔助文件;
DBC:為FOXPRO中的資料庫名;
DBF:XBASE資料庫文件;
DDI:早期映象文件,由DiskDUP Imgdrive Img.exe展開;
DLL:Windows下應用程序中的動態連結庫文件;
DOC:文檔文件,由Microsoft Word生成,也有一部分是由Word Perfect生成;
DRW:矢量格式,Micrografx Designer使用的繪圖文件格式;
DRV:驅動程序文件;
DXF:矢量格式,是AutoCAD的繪圖交換文件;
EPS:是Adobe System公司的PostScript頁面描述語言的產物,是矢量圖形文件;
EXE:可執行的程序文件,與COM內部結構不相同,最突出是長度沒有限制;
FLI:動畫文件,是由AutoDesk公司開發的,只支持320*200*256色模式,它是FLC的老祖宗;
FIC:動畫文件,是AutoDesk公司開發的;
FMT:FOXBASE中的屏幕格式文件;
FNT:為Bezier(貝氏)類型字體的文件;
FOR:FORTRAN語言源程序文件;
FOT:是True Type字體文件的資源文件,正因為FOT文件中含有指向TTF的指針,所以我們的字體文件(TTF)才可以放在任何目錄下面;
FOX:FOXBASE偽編譯程序文件,比PRG短小運行速度快;
FRM:FOXBASE中的報表格式文件;
GIF:GIF在網頁中佔有獨一無二的地位,美中不足是顏色最多為(256色)8位,與其它圖象文件相比,GIF高人一招,它是唯一可以存儲動畫的圖像格式;
GRP:Windows程序組文件;
HGL:是HP公司創建的一種矢量圖形文件;
HLP:幫助文件;
HTM:超文本文件;
HTML:超文本文件;
ICO:圖標。
IDX:FOXBASE中的索引文件;
IMD:UCDOS中輸入法的編碼字典文件;
IMP:IMP壓縮文件格式;
INI:配置文件,不要以為這個文件只有Windows程序需要,DOS下程序也有不少需要它,如3DS與AutoCAD;
INF:安裝配置文件,這在WIN95下使用較多;
IMG:有時它是一個圖象文件,但更多的時候,它是軟盤映象文件,常用HD-COPY IMG UNIMG、WINIMAGE等軟體進行解壓。
ISO:標准光碟鏡像文件;
JAR:JAR壓縮文件格式;
JPG:JPG原是Apple Mac機器上使用的一種圖像格式,現在在PC機上大行其道,其壓縮比可以調節,而且失真又很小。
LBL:FOXBASE中的標簽文件;
LIB:程序庫文件;
LOG:日記文件;
LRC:MP3歌詞;
LZH:壓縮文件格式;
M3U:文本文件,存放mp3、rm等多媒體文件列表;
MAK:C語言中的工程文件;
MEM:FOXBASE中的內存變數文件;
MID:數字音頻文件(樂器數字介面);
MLI:3DS中的材質庫;
MMM:動畫文件,是MacroMind公司著名多媒體寫作軟體Director生成的;
MPG:視頻文件,PC機上的全屏幕活動視頻的標准文件;
MOD、ST3、XT、S3M、FAR、669:該格式的文件里存放樂譜和樂曲使用的各種音色樣本,。現在已經逐漸淘汰,目前只有MOD迷及一些游戲程序中尚在使用。
MOV:QUICKTIME的視頻影像格式,同樣採用有損壓縮方法,在Windows下必須安裝QuickTime程序才能播放;
MP2、音樂文件;
MP3:音頻格式,MPEG-1 Audio Layer-3 I格式;
NO:一般是文本文件,如:Serial.no,通常還有一種格式為sn.txt,它說是你安裝軟體的CD-KEY、產品序列號、注冊登記號;
OBJ:目標文件,源程序編譯輸出的目標代碼;
OLD:備份文件,一般是一些程序對系統配置修改後將原文件復制一份存儲為該文件格式;
PAS:PASCAL語言源程序文件;
PCD:是PhotoCD專用存儲格式,由於其文件特別大,不得不存在CD-ROM上,但應用特別廣;
PCM:模擬音頻信號經模數轉換(A/D變換)直接形成的二進制序列;
PCS:為PowerPoint中的圖象文件,為矢量圖形文件;
PCX:是微機上使用最廣泛的圖像格式之一,能表現真彩圖像;
PDF:Aodbe acrobat的電子圖書格式;
PDG:超星電子圖書格式;
PDV:UCDOS中的自由表格UCTAB生成的表格文件,它生成的文件可以被WPS調用,也挺方便的;
PFB:Adobe TYPE1字體Post Script字模文件,必須使用Adobe Type Manager管理安裝使用,它的最大優點是放大時比TTF字幕可K得多;
PIC:同上,Lotus 1-2-3的圖表文件也叫PIC文件;
PIF:Windows中的運行非Windows應用程序建立的一個文件;
PJX:Visual FoxPro下的項目文件與輔助文件PJT結合成項目管理文件;
PNG:Portable Network Graphics可移植的網路圖形,一種新興的圖片格式;
PPT、PPS、POT:微軟的PowerPoint電子演示文檔格式;
PRG:FOXBASE過程程序文件;
PSD:PDD點陣圖文件,是Adobe Photoshop直接生成的圖象文件;
PS1:為WPS下擴展字型檔文件,PS2一般為繁體;
PYR:格式全稱Pyramid Images。這種格式可以在一個文件中包含有多種文辨率,存儲方便。
RA、RAM、RM:REALPLAY流媒體格式;
RAR:這也是一個壓縮文件,傳說比ARJ壓縮比更高;
REC:Windows中記錄器中的宏命令文件;
REG:注冊表導出格式。
RIFF:ainter格式。
RMI、CMI、CMF:是mid幾個變通格式;
RTF:文本文件格式,Windows wordpad默認文件保存格式;
SCR:Windows屏幕保護程序文件;
SHP:矢量格式,3DS中的造型文件;
SND:聲音文件的剪輯文件;
SWA:音頻格式,MPEG-1 Audio Layer-3 II格式;
SWF:Flash動畫文件格式;
SYS:Windows系統文件;有時是系統配置文件,最典型的如config.sys
TAR:壓縮文件格式;
TGA:點陣圖文件,為Targa公司開發的支持8位到32位顏色深度圖像文件;
TIF:圖形文件,TIF程式圖像可以是RGB真彩色的;
TMP:臨時文件;
TTF、TTC:True Type字體文件,是一種輪廓字模,是由Apple和Microsoft合作開發的;
TXT:純文本文件格式;Cookies也採用這種格式;notepad默認保存文件格式。
WAV:Windows所使用的標准數字音頻文件,也稱波形文件,它能夠重現各種單聲道或立體聲的聲音,是最常見的聲音文件;
WDL:華康科技DynaDoc的電子文檔格式;
WMA:Windows Media Audio,微軟的音樂文件格式;
WMF:是特殊文件,是點陣圖和矢量圖混血兒;
WMV:微軟的流媒體格式;
WPG:矢量/格式,是Word Perfect使用的文件格式;
WPS:文檔文件,由著名國產軟體WPS生成;
WRI:文檔文件,是由Windows中書寫器生成的;
UUE:壓縮文件格式;
VXD:虛擬設備文件;
VOC:Creative公司波形音頻文件格式,也是聲霸卡(sound blaster)使用的音頻文件格式。
VDA、ICB、VST:與TGA相似,均為Targa公司開發的點陣圖文件;都是使用很廣泛的;
XLS、XLA、XLB、XLC、XLD、XLK…:皆為電子表格Excel的格式文件; 其中XLS為工作表格式;
ZIP:當前最流行的壓縮文件,WINZIP、WinRAR等壓縮軟體均支持; WindowsME/XP也已內置支持。

『陸』 c#讀取dxf文件

1、使用FileStream讀寫文件

文件頭:

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

讀文件核心代碼:

byte[] byData = new byte[100];
char[] charData = new char[1000];

try
{
FileStream sFile = new FileStream("文件路徑",FileMode.Open);
sFile.Seek(55, SeekOrigin.Begin);
sFile.Read(byData, 0, 100); //第一個參數是被傳進來的位元組數組,用以接受FileStream對象中的數據,第2個參數是位元組數組中開始寫入數據的位置,它通常是0,表示從數組的開端文件中向數組寫數據,最後一個參數規定從文件讀多少字元.
}
catch (IOException e)
{
Console.WriteLine("An IO exception has been thrown!");
Console.WriteLine(e.ToString());
Console.ReadLine();
return;
}
Decoder d = Encoding.UTF8.GetDecoder();
d.GetChars(byData, 0, byData.Length, charData, 0);
Console.WriteLine(charData);
Console.ReadLine();

寫文件核心代碼:

FileStream fs = new FileStream(文件路徑,FileMode.Create);
//獲得位元組數組
byte [] data =new UTF8Encoding().GetBytes(String);
//開始寫入
fs.Write(data,0,data.Length);
//清空緩沖區、關閉流
fs.Flush();
fs.Close();

2、使用StreamReader和StreamWriter

文件頭:

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

StreamReader讀取文件:

StreamReader objReader = new StreamReader(文件路徑);
string sLine="";
ArrayList LineList = new ArrayList();
while (sLine != null)
{
sLine = objReader.ReadLine();
if (sLine != null&&!sLine.Equals(""))
LineList.Add(sLine);
}
objReader.Close();
return LineList;

StreamWriter寫文件:

FileStream fs = new FileStream(文件路徑, FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
//開始寫入
sw.Write(String);
//清空緩沖區
sw.Flush();
//關閉流
sw.Close();
fs.Close();

===================================================================================

方式一:用FileStream
//實例化一個保存文件對話框
SaveFileDialog sf = new SaveFileDialog();
//設置文件保存類型
sf.Filter = "txt文件|*.txt|所有文件|*.*";
//如果用戶沒有輸入擴展名,自動追加後綴
sf.AddExtension = true;
//設置標題
sf.Title = "寫文件";
//如果用戶點擊了保存按鈕
if(sf.ShowDialog()==DialogResult.OK)
{
//實例化一個文件流--->與寫入文件相關聯
FileStream fs = new FileStream(sf.FileName,FileMode.Create);
//獲得位元組數組
byte [] data =new UTF8Encoding().GetBytes(this.textBox1.Text);
//開始寫入
fs.Write(data,0,data.Length);
//清空緩沖區、關閉流
fs.Flush();
fs.Close();
}
方式二:用StreamWriter
//實例化一個保存文件對話框
SaveFileDialog sf = new SaveFileDialog();
//設置文件保存類型
sf.Filter = "txt文件|*.txt|所有文件|*.*";
//如果用戶沒有輸入擴展名,自動追加後綴
sf.AddExtension = true;
//設置標題
sf.Title = "寫文件";
//如果用戶點擊了保存按鈕
if (sf.ShowDialog() == DialogResult.OK)
{
//實例化一個文件流--->與寫入文件相關聯
FileStream fs = new FileStream(sf.FileName, FileMode.Create);
//實例化一個StreamWriter-->與fs相關聯
StreamWriter sw = new StreamWriter(fs);
//開始寫入
sw.Write(this.textBox1.Text);
//清空緩沖區
sw.Flush();
//關閉流
sw.Close();
fs.Close();
}
string FileName = Guid.NewGuid().ToString() + ".txt"; //GUID生成唯一文件名
StringBuilder ckpw = new StringBuilder("\"憑證輸出\", \"V800\", \"001\", \"東風隨州專用汽車有限公司\"," + "\"F89自由項16\", \"F90審核日期:\"");
if (!FileIO.IsFolderExists(Server.MapPath("pzsc")))
FileIO.CreaterFolder(Server.MapPath(""), "file://pzsc/");
string filePath = Server.MapPath("pzsc") + "\\" + FileName;
System.IO.StreamWriter sw = new System.IO.StreamWriter(filePath, false, Encoding.GetEncoding("GB2312"));//創建的時候需要指定編碼格式,默認是UTF-8,中文顯示亂碼
sw.WriteLine(ckpw.ToString());
sw.Close();
方式三:用BinaryWriter
//實例化一個保存文件對話框
SaveFileDialog sf = new SaveFileDialog();
//設置文件保存類型
sf.Filter = "txt文件|*.txt|所有文件|*.*";
//如果用戶沒有輸入擴展名,自動追加後綴
sf.AddExtension = true;
//設置標題
sf.Title = "寫文件";
//如果用戶點擊了保存按鈕
if (sf.ShowDialog() == DialogResult.OK)
{
//實例化一個文件流--->與寫入文件相關聯
FileStream fs = new FileStream(sf.FileName, FileMode.Create);
//實例化BinaryWriter
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(this.textBox1.Text);
//清空緩沖區
bw.Flush();
//關閉流
bw.Close();
fs.Close();
}
C#緩存流示例------>用緩存流復制文件
C#文件處理操作必須先導入命名空間:using System.IO;
背景:使用VS2005、一個按鈕、一個窗體、C#緩存流、把D:\KuGoo\愛得太多.wma復制到D:\並更名為love.wma,即:D:\love.wma
在按鈕的Click事件中添加如下代碼:
private void button1_Click(object sender, EventArgs e)
{
//創建兩個文件流 一個是源文件相關,另一個是要寫入的文件
FileStream fs = new FileStream(@"D:\KuGoo\愛得太多.wma",FileMode.Open);
FileStream fs2 = new FileStream(@"D:\love.wma",FileMode.Create);
//創建一個位元組數組,作為兩者之間的媒介
//好比兩個人拿蘋果,這個位元組數組就好比一個籃子,一個人作死的把蘋果送到籃子裡面,
//而我就可以作死得拿蘋果,通過這個媒介我們互不幹擾,
//不需要互相等待【她往籃子裡面放了蘋果我才可以去拿】,提高了效率
byte[] data = new byte[1024];
//創建兩個緩沖流,與兩個文件流相關聯
BufferedStream bs = new BufferedStream(fs);
BufferedStream bs2= new BufferedStream(fs2);
//fs作死的讀,fs2作死的寫,直到fs沒有位元組可讀fs2就不寫了
//好比,一個人作死的往籃子裡面丟蘋果,另一個人作死得往籃子裡面拿蘋果,直到籃子裡面沒有蘋果拿了為止
//即-->那個人沒有蘋果往籃子裡面放了
while(fs.Read(data,0,data.Length)>0)
{
fs2.Write(data,0,data.Length);
fs2.Flush();
}
//關閉流,好比兩個人累了,都要休息 呵呵o(∩_∩)o...
fs.Close();
fs2.Close();
}

C#內存流示例----->用內存流來讀取圖片
C#文件處理操作必須先導入命名空間:using System.IO;
背景:一個窗體、一個pictureBox、一個lable[沒有選擇圖片,lable的text為"圖片未選擇"],在pictureBox1的Click事件中添加如下代碼:
private void pictureBox1_Click(object sender, EventArgs e)
{
//實例化一個打開文件對話框
OpenFileDialog op = new OpenFileDialog();
//設置文件的類型
op.Filter = "JPG圖片|*.jpg|GIF圖片|*.gif";
//如果用戶點擊了打開按鈕、選擇了正確的圖片路徑則進行如下操作:
if(op.ShowDialog()==DialogResult.OK)
{
//清空文本
this.label1.Text = "";
//實例化一個文件流
FileStream fs = new FileStream(op.FileName, FileMode.Open);
//把文件讀取到位元組數組
byte[] data = new byte[fs.Length];
fs.Read(data, 0, data.Length);
fs.Close();
//實例化一個內存流--->把從文件流中讀取的內容[位元組數組]放到內存流中去
MemoryStream ms = new MemoryStream(data);
//設置圖片框 pictureBox1中的圖片
this.pictureBox1.Image = Image.FromStream(ms);
}
}

『柒』 需要一個c語言(turbo c2.0)的大型程序的設計方案

現在好多的人都在用手機。P4看小說,你可以寫一個TXT文本方面的軟體,比如,有的人嫌下載的太大了,可以寫個分割功能,有的分章節下的,可以寫個合並功能的,等等其它。

『捌』 C語言與AutoCAD的連接問題

AutoCAD 里選 File->Export 再選 dxf 文件格式。
dxf 是ASCII 可讀文件。
C語言 打開 dxf 文件,按行找關鍵字,再讀數值。

『玖』 如何用Opengl讀取dxf文件和JPEG圖像

dxf是AutoCAD ® DXFTM (Drawing eXchange Format) 向量圖型文件。
JPEG 是 JPEG 工作組的 圖像 文件 格式。
Opengl 可以讀取 SGI 圖像文件 和 BMP 圖像文件,不直接支持 dxf和JPEG。
你需要自己寫程序。

dxf文件是 ASCII, 可識別,例如 讀 Arc (弧)和弧線參數,然後你用Opengl畫弧線,讀 Spline (樣條曲線),和樣條曲線參數,然後你用Opengl畫曲線,讀 3DLine,然後你用Opengl畫三維線,。。。。

工作量很大。不如買現成軟體。

『拾』 c語言的一個問題,謝謝

/*程序寫的很有問題,自己多寫寫,多看看吧!!!!!*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

void main()
{
FILE *in,*out;
char str[100]; /*應該初始化*/
float x[1000],y[1000]; /*同上*/
int i,j;

/*這條語句錯誤,少了個括弧
if(in=fopen("spline.dxf","r")==NULL)
*/
if ((in = fopen("spline.dxf", "r")) == NULL)
{
printf("read faild");
getch();
}

i = 0;

while(fgets(str, 100, in)!=NULL)
{
/*if(str=="POLYLINE")*/ /*字元串不可以這么比較:str是個指針*/
if (!strcmp(str, "POLYLINE")) /*最好使用strncmp:或其它限定函數*/
{

while(fgets(str,99,in)!=NULL)
{
if(str==" 10") /*同上*/
{
fgets(str,100,in);
x[i]=atof(str);
}
else if(str==" 20") /*同上*/
{
fgets(str,100,in); /*判斷是否出錯?!!!*/
y[i]=atof(str);
i++;
}
else
fgets(str,100,in); /*判斷是否出錯,這是必須的*/
}
}

fclose(in);

/*這樣的注釋在某些編譯器下是不能通過的:example-linux or aix: cc */

//write xyr.xyr /*不要這么注釋*/
/*write xyr.xyr*/

j=i;
out=fopen("XYR.XYR","w"); /*希望有個if判斷*/

fprintf(out,"1\n");
fprintf(out,"1\n");
fprintf(out,"%d",i);
fprintf(out,str);

for(i=0;i<j;i++)
{
fprintf(out,"%d %f %f 0\n",i+1,x[i],y[i]);
}

close(out); /*注意:你使用的打開文件的函數是fopen,這里要用fclose函數*/

return; /*不管函數是否需要返回值,最好都加上return*/

}