廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 10287 個閱讀者
 
<<   1   2   3  下頁 >>(共 3 頁)
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
a82613035
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x1 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x1
[Basic][求助] 如何在(記事本) AAA.TXT,裡座標排序 (Q4)由大排小 (Q2)由小排大(Q3)由大排小 (Q1)由小排大
X13.50Y1096.00T210
X32.50Y13.00T210
X13.50Y42.00T210
X32.50Y38.00T210
X13.50Y1056.00T210
X13.50Y13.00T210
X523.50Y1096.00T210
X521.50Y36.00T210
X33.50Y1096.00T210
X53.50Y1096.00T210
X538.50Y1081.00T210
X13.50Y1076.00T210
X538 ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容



獻花 x0 回到頂端 [樓 主] From:台灣中華電信 | Posted:2010-09-25 13:33 |
climbd25976 手機
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x10
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

這是什麼...不明白你在說什麼←新手 表情


獻花 x0 回到頂端 [1 樓] From:香港有線寬頻 | Posted:2010-09-27 21:32 |
a82613035
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x1 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

CLIMBD25976 不知如何稱呼,我可以傳資料給你,用講的話可能你聽不懂我再說什麼,可以嗎?我的信箱是
sm.don@msa.hinet.net


獻花 x0 回到頂端 [2 樓] From:台灣中華電信 | Posted:2010-09-28 12:35 |
ebolaman 手機 會員卡
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎

級別: 副版主 該用戶目前不上站
版區: 程式設計
推文 x38 鮮花 x458
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片


大致上了解,這是第二次修改

不過還是搞不懂到底要依照何種標準來排序

假如要修改,只要調 CmpPos
函數裡的東西即可





Form1:

複製程式
Option Explicit

Private Sub Command1_Click()

Dim S As String
Dim Arr() As String
Dim i As Long, k As Long, XYInd As Integer
Dim B As Boolean
Dim CmpMethod1 As Integer, CmpMethod2 As Integer


'------------ Ini. Var. ------------

CmpMethod1 = IIf(Option1(0).Value = True, 1, 0) 'Sort By Y or not
CmpMethod2 = IIf(Check1.Value = 1, 2, 1) 'Increasing or not

'--------- Put Datas Into Array -----------
S = Trim(Text1.Text)

Do While Right(S, 2) = vbNewLine
  S = Left(S, Len(S) - 2)
Loop

Arr = Split(S, vbNewLine)

k = UBound(Arr)
ReDim Pos(k, 1) As Double

For i = 0 To k
  Pos(i, 0) = GetUserVal(Arr(i), 0) 'X
  Pos(i, 1) = GetUserVal(Arr(i), 1) 'Y
Next i

'-------- Sort ----------

'Bubble Sort

For XYInd = 0 To 1
    Do
        i = 0
        B = False
        Do
          If CmpPos(Pos, i, CmpMethod1, CmpMethod2, XYInd) Then
              ExcgPos Pos, i
              B = True
          End If
            i = i + 1
        Loop While i < k
    Loop While B
Next XYInd

'---------- Show Result ---------

S = ""
For i = 0 To k
  S = S & "(" & Pos(i, 0) & ", " & Pos(i, 1) & ")" & vbNewLine
Next i
  Text2.Text = S

End Sub

Public Function GetUserVal(ByVal S As String, ByVal Typ As Byte) As Double

Dim m As Long, m2 As Long

  'Kill Str T...
  m = InStrRev(UCase(S), "T")
  If m <> 0 Then S = Left(S, m - 1)

'''

m = InStr(1, UCase(S), "X")
m2 = InStr(m + 1, UCase(S), "Y")

GetUserVal = IIf(Typ = 0, Mid(S, m + 1, m2 - m - 1), Right(S, Len(S) - m2))

End Function

Public Sub ExcgPos(ByRef P() As Double, ByVal i As Long) 'Exchange Two Pos.
  
  Dim tempk As Double, tempk2 As Double
  
  tempk = P(i, 0): tempk2 = P(i, 1)
  P(i, 0) = P(i + 1, 0): P(i, 1) = P(i + 1, 1)
  P(i + 1, 0) = tempk: P(i + 1, 1) = tempk2
  
End Sub

Public Function CmpPos(ByRef P() As Double, ByVal i As Long, ByVal Mtd1 As Integer, ByVal Mtd2 As Integer, ByVal Ind As Integer) As Boolean

Dim FixedMtd As Integer

If Ind = 0 Then
  If Mtd2 = 2 Then
    CmpPos = (P(i, Mtd1) > P(i + 1, Mtd1))
  Else
    CmpPos = (P(i, Mtd1) < P(i + 1, Mtd1))
  End If
Else
    
    FixedMtd = Mtd1
    Mtd1 = CByte(Not CBool(Mtd1 * 255)) / 255 'Reverse 0 & 1

  If Mtd2 = 2 Then
    CmpPos = (P(i, Mtd1) > P(i + 1, Mtd1)) And (P(i, FixedMtd) = P(i + 1, FixedMtd))
  Else
    CmpPos = (P(i, Mtd1) < P(i + 1, Mtd1)) And (P(i, FixedMtd) = P(i + 1, FixedMtd))
  End If
End If

End Function




本帖包含附件
zip Seq_XY And Sort.rar   (2022-06-09 14:16 / 6 KB)   下載次數:9


[ 此文章被ebolaman在2010-09-30 04:33重新編輯 ]

此文章被評分,最近評分記錄
財富:50 (by 三仙) | 理由: ^^ 因為您的參與,讓程式設計更容易!!


My BOINC stats :

獻花 x1 回到頂端 [3 樓] From:台灣新世紀資通 | Posted:2010-09-28 18:29 |
a82613035
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x1 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

ebolaman你好 :
          我有一個 長( X )552. 寬(Y)1109. 座標分為四個角落,四個角設定為Q1,Q2,Q3,Q4 為四個角落
Q1為 (X0. Y0.) , Q2為(X552. Y0.) , Q3為(X0. Y1109.) , Q4為( X552. Y1109.)
1: 首先開啟 入徑C:\ XXX \AAA.TXT (記事本),把( T210 或是T313或是T235或是T304等)無排序座標重新排列座標,把四個角落Q1,Q2,Q3,Q4,由外面排到裡面,例如座標分佈再Q4位置座標外面排到裡面,座標分佈再Q2位置座標外面排到裡面,座標分佈再Q3位置座標外面排到裡面,座標分佈再Q1位置座標外面排到裡面,由Q4角落排到---Q2角落排到--- Q3角落排到--- Q1角落排到
下面是座標無排序
(552.1109.)
X10.00Y804.50T304
X10.00Y554.50T304
X10.00Y304.50T304
X542.00Y804.50T235
X542.00Y554.50T235
X542.00Y304.50T235
X451.00Y384.50T313(Q2)
X451.00Y724.50T313(Q4)
X101.00Y724.50T313(Q3)
X101.00Y384.50T313(Q1)
X3.50Y1041.27T210(Q3)
X13.50Y1056.00T210(Q3)
X13.50Y1076.00T210(Q3)
X53.50Y1096.00T210(Q3)
X33.50Y1096.00T210(Q3)
X523.50Y1096.00T210(Q4)
X538.50Y1081.00T210(Q4)
X521.50Y36.00T210(Q2)
X538.50Y36.00T210(Q2)
X49.50Y13.00T210(Q1)
X32.50Y13.00T210(Q1)
X32.50Y38.00T210(Q1)
X13.50Y42.00T210(Q1)
X538.50Y13.00T210(Q2)
X538.50Y1096.00T210(Q4)
X13.50Y13.00T210(Q1)
X13.50Y1096.00T210(Q3)
下面是重新排列座標
(552.1109.)
X10.00Y804.50T304
X10.00Y554.50T304
X10.00Y304.50T304
X542.00Y804.50T235
X542.00Y554.50T235
X542.00Y304.50T235
X451.00Y724.50T313(Q4)
X451.00Y384.50T313(Q2)
X101.00Y724.50T313(Q3)
X101.00Y384.50T313(Q1)
X538.50Y1096.00T210(Q4)
X538.50Y1081.00T210(Q4)
X523.50Y1096.00T210(Q4)
X538.50Y13.00T210(Q2)
X538.50Y36.00T210(Q2)
X521.50Y36.00T210(Q2)
X13.50Y1096.00T210(Q3)
X33.50Y1096.00T210(Q3)
X53.50Y1096.00T210(Q3)
X13.50Y1076.00T210(Q3)
X13.50Y1056.00T210(Q3)
X3.50Y1041.27T210(Q3)
X13.50Y13.00T210(Q1)
X13.50Y42.00T210(Q1)
X32.50Y13.00T210(Q1)
X32.50Y38.00T210(Q1)
X49.50Y13.00T210(Q1)
重新排好座標,覆蓋AAA.TXT,裡面,小弟構想就是這樣


獻花 x0 回到頂端 [4 樓] From:台灣中華電信 | Posted:2010-09-30 07:46 |
ebolaman 手機 會員卡
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎

級別: 副版主 該用戶目前不上站
版區: 程式設計
推文 x38 鮮花 x458
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 a82613035 於 2010-09-30 07:46 發表的 : 到引言文
ebolaman你好 :
          我有一個 長( X )552. 寬(Y)1109. 座標分為四個角落,四個角設定為Q1,Q2,Q3,Q4 為四個角落
Q1為 (X0. Y0.) , Q2為(X552. Y0.) , Q3為(X0. Y1109.) , Q4為( X552. Y1109.)
1: 首先開啟 入徑C:\ XXX \AAA.TXT (記事本),把( T210 或是T313或是T235或是T304等)無排序座標重新排列座標,把四個角落Q1,Q2,Q3,Q4,由外面排到裡面,例如座標分佈再Q4位置座標外面排到裡面,座標分佈再Q2位置座標外面排到裡面,座標分佈再Q3位置座標外面排到裡面,座標分佈再Q1位置座標外面排到裡面,由Q4角落排到---Q2角落排到--- Q3角落排到--- Q1角落排到
下面是座標無排序
.......


所以我先歸納一下規則:

Q1 : Y 主遞增、X其次
Q2 : Y 主遞增、X接著遞減

Q3 : X 主遞增、Y接著遞減
Q4 : Y 主遞減、X其次



是嗎?

我另做了一個圖來展示以上意義:





不過有幾點我搞不太清楚:

1. 真的是照以上規則嗎? 不是照與某點距離?
2. 字串後面的 TXXX 是做什麼的
3. 輸出格式必須保持與原本相同嗎? 例如: X123Y345T678

4. 輸入來源有 Q1, Q2... 等字樣嗎?


歸納出以上規則後,相信會比較好了解排序之最終目的

我已把大致上的 VB 程式碼打好了,或許你先行修改看看


[ 此文章被ebolaman在2010-09-30 20:20重新編輯 ]


My BOINC stats :

獻花 x0 回到頂端 [5 樓] From:台灣新世紀資通 | Posted:2010-09-30 20:15 |
a82613035
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x1 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

1:照你圖上規定走的路線排序座標,不過Q3方向可以改走Y方向,另外Q1,Q2,Q3,Q4 也可以走X方向
2:字串後面的 TXXX 是做什麼的,是模具號碼,我工作性質是沖孔人員,每天對著電腦劃圖
3:輸出格式必須保持與原本相同,是的X123.Y345.T678
4:輸入來源有 Q1, Q2... 等字樣嗎?是沒有


獻花 x0 回到頂端 [6 樓] From:台灣中華電信 | Posted:2010-09-30 21:09 |
a82613035
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x1 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

補充一下
1:再AAA.TXT資料裡,第一行是空行,
                        第二行是 (X552.Y1109.), " ) " 後面有加G92XXXXXXX
第三行以後都是 X10.00Y804.50T304 ,TXXX後面有( XXX )敘述說明,例如(3.1) 或是 (FAN*0.)等等,不一定每個TXXX後面都有敘述說明,
直到最後結束有個G50
例如:
X10.00Y304.50T304
X542.00Y804.50T235
X542.00Y554.50T235
.
.
.
.
X32.50Y38.00T210
G50

G50下一行是空行


獻花 x0 回到頂端 [7 樓] From:台灣中華電信 | Posted:2010-10-01 07:28 |
ebolaman 手機 會員卡
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎

級別: 副版主 該用戶目前不上站
版區: 程式設計
推文 x38 鮮花 x458
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 a82613035 於 2010-10-01 07:28 發表的 : 到引言文
補充一下
1:再AAA.TXT資料裡,第一行是空行,
                        第二行是 (X552.Y1109.), " ) " 後面有加G92XXXXXXX
第三行以後都是 X10.00Y804.50T304 ,TXXX後面有( XXX )敘述說明,例如(3.1) 或是 (FAN*0.)等等,不一定每個TXXX後面都有敘述說明,
直到最後結束有個G50
例如:
X10.00Y304.50T304
X542.00Y804.50T235
X542.00Y554.50T235
.
.
.
.
X32.50Y38.00T210
G50

G50下一行是空行


那麼,AAA.TXT 裡面就是從  最前面的 空行G50 下一行空行 為止算一個群組,所以有很多群組需要排序囉?

不過我仍然無法掌控到 排序的規則



目前我的理解是這樣:X, Y 個軸 分別為主、次遞增或遞減

但仍有一個麻煩,就是在這個群組裡無法區分 Q1~Q4 這四個區塊

是以模組長寬 (X552.Y1109.)  的中心點? 抑或是 每個資料的X 與 Y 取平均值? 還是要看離散度? 相關係數?...

抓出這個點後要以這個點為中心,往南北與東西向各畫出分隔線,然後將分隔的四塊分為 Q1~Q4 嗎?


至於排序,機器只能以直線走嗎? 可以走斜線嗎? 假如排序依照最短路徑來走行嗎?

因為我對沖孔不懂,在著手進行前還是要把規則搞清楚才行



我畫了一個圖展示我認為的 AAA.txt 規則:



My BOINC stats :

獻花 x0 回到頂端 [8 樓] From:台灣台灣寬頻 | Posted:2010-10-01 19:01 |
a82613035
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x1 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

1: (X552.Y1109.)這是鐵板長度,不是模具長度
2: AAA.TXT是沖孔程式,是讓沖孔機器讀座標去沖孔 3: T210 才是模具號碼
4: 我解釋一下,為什麼要排序座標,T210這把模具是
    20X20正方形,假如有四個座標 第一座標是X10.Y10.T210 第二座標是X30.Y10.T210第三座標是X10.Y30.T210第四座標是X30.Y30.T210,如果先排
X30.Y10.T210
X10.Y30.T210
X30.Y30.T210
X10.Y10.T210
最後X10.Y10.T210座標,鐵板就會掉料,所以才要排序座標,不要讓鐵板掉料
5:沖孔機器,是依據你寫的座標去沖孔
6:AAA.TXT是一條程式,G50是結束程式
7:機器可以直線走也可以走斜線,依據你寫的座標去沖孔,排序依照最短路徑來走行
8:(X552.Y1109.)這是鐵板長度,X552.及Y1109.這是一個變數,不是每條程式都不會一樣,
9:我有一個 鐵板長度,長( X )552. 寬(Y)1109. 座標分為四個角落,四個角設定為Q1,Q2,Q3,Q4 為四個角落
Q1為 (X0. Y0.) , Q2為(X552. Y0.) , Q3為(X0. Y1109.) , Q4為( X552. Y1109.)


獻花 x0 回到頂端 [9 樓] From:台灣威寶電信 | Posted:2010-10-01 22:54 |

<<   1   2   3  下頁 >>(共 3 頁)
首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.149646 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言