私はVBを初めて使用しています。両方の列のアドレスを比較する必要があります。4列のデータの比較
両方のアドレスが一致する場合、両方のデータが一致するかどうかをチェックし、ソースファイルとダンプファイルのアドレスとデータの両方をテキストファイルに出力しない場合はチェックします。
列Aのアドレスが列Cに見つからない場合は、ソースファイルのアドレスとデータをテキストファイルに出力します。
列Cのアドレスが列Aに見つからない場合、ダンプファイルのアドレスとデータをテキストファイルに出力します。
誰かが私を助けることを願っています。ありがとう!アドレスが一致した場合
Source File Dump File
a b c d
1 address data address data
2 s100 a s010 x
3 S010 x s020 b
4 S030 y S030 y
5 s040 z S040 d
一つの問題
は、私はそれは、データが両方のアドレスで同じであるかどうかを確認doesntのだと思います。たとえば、ソースファイルは、アドレスがデータ「Z」で「S040」が、アドレスを持つファイルをダンプデータ「D」
時間の問題
それは非常に長いARD 900M反復があるので取って「S040」を有します。重複を最初に削除してからこの検索を実行する方が良いですか?私はエクセルの重複削除機能を使用しようとしましたが、1つの列に対してのみ機能します。サイクル全体で25分かかる。データを組み合わせる
連続したアドレスがリストに一意である場合:
1列で一意のアドレスのチャンクがあれば、私が最初に固有のアドレスと最後の独特の開始アドレスを見つける必要があります
'If all the data are FF's output like this
File: dump.s19
0x006180 – 0x007E8F
[Result] OK
'Here certain lines are all FF's which are not displayed here, only Non FF's lines need to printed as follows.
File: dump.s19
0x007EB0 – 0x00FFFF
S224007FF0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4247494EFFFFFFFFFFFFFFFF0000FFFF66
S224008010FFFFFFFF01019D160825A100100201FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA
S224008050302D4100E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8
S224008070FFFFFFFFFFFFFFFFFFFFA3BF454E442EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E
Result: NOK
私はこの追加のロジックを統合する方法を確認していない:すべてのFFはこのような者ではありませんアドレスと 出力行のみ私のコードに。
'Set the address you're trying to find
fa = Range(sf & cr).Value
fa_data = Range(Chr(Asc(sf) + 1) & cr).Value
Debug.Print "fa" & fa
'Find it
Set targetcell = Range(si & 3 & ":" & si & lr_2).Find(What:=fa, LookIn:=xlValues, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True)
'If Nothing is returned it is not found
If targetcell Is Nothing Then
'Write your search cell and it's ajacent to your file.
If l = 1 Then
startadd = Range(sf & cr).Value
If startadd <> "FFFFFF" Then
Dec_startadd = Val("&H" & startadd & "&H")
lgth = Len(Range(Chr(Asc(sf) + 1) & cr)) - 2
lgth = lgth/2 - 1
endadd = Hex(Dec_startadd + lgth)
endadd = Right("000000" & endadd, 6)
Print #fn, "File:" & orig_filename
Print #fn, "0x" & startadd & " - 0x" & endadd
Print #fn, Range(Chr(Asc(sf) - 1) & cr).Value & Range(sf & cr).Value & Range(Chr(Asc(sf) + 1) & cr).Value
Print #fn, "Result: NOK"
Print #fn,
Print #fn,
は、あなたがこれまでにしようとしているものを、SOへようこそ! SOはコード作成サービスではありませんので、あなた自身でこれを解決しようとしているものを提供してください。 – DragonSamu
(1分足らず)http://stackoverflow.com/questions/7899034/compare-values-in-excel-vbaおよびhttp://www.homeandlearn.org/write_to_a_text_file.html –
私は2つのforループを使用する予定でした。ダンプファイル(35000)とアドレスのard 31000ファイルには、より多くのアドレスがあるので、効率的に行う方法がわかりません。私は多くのコーディングをしていないし、初心者ですので、私にとっては非常に複雑に思えます。 – Manick9