我有一個40K行的EDI(固定長度)文件,我必須解析成csv文件。如果你知道edi,你就知道每個元素都有自己的固定長度。用php/mysql解析EDI文件
我剛剛解析EDI,只需要一點幫助。我首先想到的是陣列中設置一個將保持元件的長度是作爲數組或作爲該
Table EDIInfo
EDI_ID | EDI_ElemLengths
1 | 3,22,7s2,30,30,22
2 | 30,5s2,9s2,3,1,23
的表**的S上方表示十進制ofter從右邊的第二位。
因此,一旦我將這些數據存入數據庫,我不知道如何將它拉出來將其應用於我在服務器上找到的文件。該文件在這一點上是無擴展名的,它是一個簡單的文本文件。我想直接將它解析成一個新的文件XXXX.csv。
任何鏈接到tuts或任何幫助/方向將不勝感激。
如果您不知道EDI,它基本上是一個文本文件,每行由「元素」組成的「記錄」。每個「元素」在該行上允許固定數量的字符,即使它沒有佔用所有分配的空間。一個元素與一個字段類似(就像一個字段被定義爲諸如varchar 64一樣,一個元素由它允許在文本文件中使用的空間量來定義)。元素互相碰撞,元素空間分配之外沒有分隔符。
謝謝
我不同意與您一樣,有時EDI文件可能沒有定界符,如下所示:00.00140名稱供應商(其中前5個字符表示一行,然後所有位置都已修復) – davidbonachera
給我一個傳統EDI文檔的示例,標準(ANSI X12,EDIFACT),沒有分隔符。固定長度的文件(不帶分隔符的記錄)不被視爲傳統的EDI文件。 – Andrew
對於物流公司來說,一些倉庫管理系統實施純粹的定位EDI解決方案。傳統的EDI我不知道它對你意味着什麼,但在歐洲,我不確定當他們在舊的IBM i系列(AS/400)上構建EDI時,他們是如此的標準。 – davidbonachera