<% 'Option Explicit ' RSSReader / CQ 1.00 2008/04/23 ' 1.01 2008/05/26 add USE_APPVAR ' < %= RSSReader(url, max, fmt, ctl) % > ←このように使う ' url : 取得したいRSSファイルのあるURL URLでないといけない ' max : 取得したい件数の最大値 (-1で無制限) ' fmt : 出力フォーマット ' ctl : 出力コントロール(絞込み/並び順) ' ' fmt: {title:100}
とか書く ' {name[:fmt]} name -> title, link, date, summary, num ' fmt: 文字列:先頭からn文字 ' 日付のときのみ、 YYYY MM DD HH NN SS が使える {date:MM-DD}とか ' 省略するとデフォルト有。VBなので"は重ねる("")こと ' ' ctl: ' 先頭1文字*で、日付順ソート ' それ以降は、タグの絞込条件 ' 無印は無条件に必要 ' +で追加条件 ' -で除外条件 ' カンマ区切りとする ' あと見つからない場合の文字列とか? const CACHEFOLDER = "d:\rsscache\" ' キャッシュ用フォルダ const CACHETTL = 55 ' minutes const CACHEASPTTL = 60 const USE_APPVAR = true ' Application変数を利用するかしないかtrue/false Const TYPE_UNKNOWN = 0 Const TYPE_RDF = 1 ' rss0.9/1.0 Const TYPE_RSS = 2 ' rss0.91/0.92/2.0 Const TYPE_ATOM = 3 ' Atom Response.CacheControl = "no-cache" Response.AddHeader "Pragma", "no-cache" Response.Expires = -1 Response.Buffer = false Dim internal_RSSErrorFlag internal_RSSErrorFlag = false Function HTMLEncode(s) HTMLEncode = Server.HTMLEncode(s) End Function ' bubble sort ' 文字列、降順、先頭の19文字に日付時刻データとする Sub ArraySort(ByRef a) Dim i, j, tmp, CMPLEN ',ef CMPLEN = 19 ' Len("yyyy/mm/dd HH:NN:SS") For i = 0 To UBound(a) -1 ' Wscript.Echo i & "=" & a(i) ' ef = true For j = i + 1 To UBound(a) If Left(a(i), CMPLEN) < Left(a(j), CMPLEN) Then ' 入れ替える tmp = a(i) a(i) = a(j) a(j) = tmp ' ef = false End If Next ' If ef = true Then Exit For ' 入れ替えなしなら終了 Next End Sub ' md5関連 Function sl(ByVal x, ByVal n) ' 左シフト If n = 0 Then sl = x Else Dim k k = CLng(2 ^ (32 - n - 1)) Dim d d = x And (k - 1) Dim c c = d * CLng(2 ^ n) If x And k Then c = c Or &H80000000 End If sl = c End If End Function Function sr(ByVal x, ByVal n) ' 右シフト(算術(>>)ではなく論理(>>>)シフトに相当) If n = 0 Then sr = x Else Dim y y = x And &H7FFFFFFF Dim z If n = 32 - 1 Then z = 0 Else z = y \ CLng(2 ^ n) End If If y <> x Then z = z Or CLng(2 ^ (32 - n - 1)) End If sr = z End If End Function Function add(ByVal a, ByVal b) ' オーバフローを無視して 32 ビットの加算をおこなう。 If a >= 0 And b <= 0 Then add = a + b ElseIf a <= 0 And b >= 0 Then add = a + b Else Dim x x = a And &H3FFFFFFF Dim y y = b And &H3FFFFFFF Dim z z = x + y Dim f f = 0 If z And &H40000000 Then f = f + 1 End If z = z And &H3FFFFFFF If a And &H40000000 Then f = f + 1 End If If a And &H80000000 Then f = f + 2 End If If b And &H40000000 Then f = f + 1 End If If b And &H80000000 Then f = f + 2 End If If f And 1 Then z = z Or &H40000000 End If If f And 2 Then z = z Or &H80000000 End If add = z End If End Function Function addCur(ByVal a, ByVal b) ' オーバフローを無視して 32 ビットの加算をおこなう。 Dim c c = CCur(a) + CCur(b) If c > &H7FFFFFFF Then c = c - CCur(2 ^ 32) ElseIf c < &H80000000 Then c = c + CCur(2 ^ 32) End If addCur = CLng(c) End Function Function ba(ByVal s) ' 文字列を文字の配列に変換する。 Dim r If Len(s) = 0 Then ' 要素数が 0 個の配列のみ特別扱いする。 r = Array() Else ReDim a(Len(s) - 1) Dim i For i = 0 To Len(s) - 1 a(i) = Asc(Mid(s, i + 1, 1)) Next r = a End If ba = r End Function Function FX(ByVal x, ByVal y, ByVal z) FX = (x And y) Or ((Not x) And z) End Function Function GX(ByVal x, ByVal y, ByVal z) GX = (x And z) Or (y And (Not z)) End Function Function HX(ByVal x, ByVal y, ByVal z) HX = x Xor y Xor z End Function Function IX(ByVal x, ByVal y, ByVal z) IX = y Xor (x Or (Not z)) End Function Function ROTATE_LEFT(ByVal x, ByVal n) ROTATE_LEFT = sl(x, n) Or sr(x, 32 - n) End Function Sub FF(ByRef a, ByVal b, ByVal c, ByVal d, ByVal x, ByVal s, ByVal ac) a = add(add(add(a, FX(b, c, d)), x), ac) a = ROTATE_LEFT(a, s) a = add(a, b) End Sub Sub GG(ByRef a, ByVal b, ByVal c, ByVal d, ByVal x, ByVal s, ByVal ac) a = add(add(add(a, GX(b, c, d)), x), ac) a = ROTATE_LEFT(a, s) a = add(a, b) End Sub Sub HH(ByRef a, ByVal b, ByVal c, ByVal d, ByVal x, ByVal s, ByVal ac) a = add(add(add(a, HX(b, c, d)), x), ac) a = ROTATE_LEFT(a, s) a = add(a, b) End Sub Sub II(ByRef a, ByVal b, ByVal c, ByVal d, ByVal x, ByVal s, ByVal ac) a = add(add(add(a, IX(b, c, d)), x), ac) a = ROTATE_LEFT(a, s) a = add(a, b) End Sub Sub MD5Init(ByRef state, ByRef count, ByRef buffer) count(0) = 0 count(1) = 0 state(0) = &H67452301 state(1) = &HEFCDAB89 state(2) = &H98BADCFE state(3) = &H10325476 End Sub Sub MD5Update(ByRef state, ByRef count, ByRef buffer, ByRef inputx, ByVal inputLen) Dim i Dim index Dim partLen index = sr(count(0), 3) And &H3F count(0) = add(count(0), sl(inputLen, 3)) If count(0) < sl(inputLen, 3) Then count(1) = add(count(1), 1) End If count(1) = add(count(1), sr(inputLen, 29)) partLen = 64 - index If inputLen >= partLen Then Call MD5_memcpy(buffer, index, inputx, 0, partLen) Call MD5Transform(state, buffer, 0) For i = partLen To inputLen - 63 - 1 Step 64 Call MD5Transform(state, inputx, i) Next index = 0 Else i = 0 End If Call MD5_memcpy(buffer, index, inputx, i, inputLen - i) End Sub Sub MD5Final(ByRef digest, ByRef state, ByRef count, ByRef buffer) Dim bits(7) Dim index Dim padLen Call Encode(bits, count, 8) index = sr(count(0), 3) And &H3F If index < 56 Then padLen = 56 - index Else padLen = 120 - index End If Dim PADDING PADDING = Array( _ &H80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 _ ) Call MD5Update(state, count, buffer, PADDING, padLen) Call MD5Update(state, count, buffer, bits, 8) Call Encode(digest, state, 16) Dim i For i = 0 To UBound(state) state(i) = 0 Next For i = 0 To UBound(count) count(i) = 0 Next For i = 0 To UBound(buffer) buffer(i) = 0 Next End Sub Sub MD5Transform(ByRef state, ByRef block, ByVal offset) Dim a a = state(0) Dim b b = state(1) Dim c c = state(2) Dim d d = state(3) Dim x(15) Call Decode(x, block, offset, 64) ' Round 1 Call FF(a, b, c, d, x( 0), 7, &HD76AA478) ' 1 S11 Call FF(d, a, b, c, x( 1), 12, &HE8C7B756) ' 2 S12 Call FF(c, d, a, b, x( 2), 17, &H242070DB) ' 3 S13 Call FF(b, c, d, a, x( 3), 22, &HC1BDCEEE) ' 4 S14 Call FF(a, b, c, d, x( 4), 7, &HF57C0FAF) ' 5 S11 Call FF(d, a, b, c, x( 5), 12, &H4787C62A) ' 6 S12 Call FF(c, d, a, b, x( 6), 17, &HA8304613) ' 7 S13 Call FF(b, c, d, a, x( 7), 22, &HFD469501) ' 8 S14 Call FF(a, b, c, d, x( 8), 7, &H698098D8) ' 9 S11 Call FF(d, a, b, c, x( 9), 12, &H8B44F7AF) ' 10 S12 Call FF(c, d, a, b, x(10), 17, &HFFFF5BB1) ' 11 S13 Call FF(b, c, d, a, x(11), 22, &H895CD7BE) ' 12 S14 Call FF(a, b, c, d, x(12), 7, &H6B901122) ' 13 S11 Call FF(d, a, b, c, x(13), 12, &HFD987193) ' 14 S12 Call FF(c, d, a, b, x(14), 17, &HA679438E) ' 15 S13 Call FF(b, c, d, a, x(15), 22, &H49B40821) ' 16 S14 ' Round 2 Call GG(a, b, c, d, x( 1), 5, &HF61E2562) ' 17 S21 Call GG(d, a, b, c, x( 6), 9, &HC040B340) ' 18 S22 Call GG(c, d, a, b, x(11), 14, &H265E5A51) ' 19 S23 Call GG(b, c, d, a, x( 0), 20, &HE9B6C7AA) ' 20 S24 Call GG(a, b, c, d, x( 5), 5, &HD62F105D) ' 21 S21 Call GG(d, a, b, c, x(10), 9, &H2441453) ' 22 S22 Call GG(c, d, a, b, x(15), 14, &HD8A1E681) ' 23 S23 Call GG(b, c, d, a, x( 4), 20, &HE7D3FBC8) ' 24 S24 Call GG(a, b, c, d, x( 9), 5, &H21E1CDE6) ' 25 S21 Call GG(d, a, b, c, x(14), 9, &HC33707D6) ' 26 S22 Call GG(c, d, a, b, x( 3), 14, &HF4D50D87) ' 27 S23 Call GG(b, c, d, a, x( 8), 20, &H455A14ED) ' 28 S24 Call GG(a, b, c, d, x(13), 5, &HA9E3E905) ' 29 S21 Call GG(d, a, b, c, x( 2), 9, &HFCEFA3F8) ' 30 S22 Call GG(c, d, a, b, x( 7), 14, &H676F02D9) ' 31 S23 Call GG(b, c, d, a, x(12), 20, &H8D2A4C8A) ' 32 S24 ' Round 3 Call HH(a, b, c, d, x( 5), 4, &HFFFA3942) ' 33 S31 Call HH(d, a, b, c, x( 8), 11, &H8771F681) ' 34 S32 Call HH(c, d, a, b, x(11), 16, &H6D9D6122) ' 35 S33 Call HH(b, c, d, a, x(14), 23, &HFDE5380C) ' 36 S34 Call HH(a, b, c, d, x( 1), 4, &HA4BEEA44) ' 37 S31 Call HH(d, a, b, c, x( 4), 11, &H4BDECFA9) ' 38 S32 Call HH(c, d, a, b, x( 7), 16, &HF6BB4B60) ' 39 S33 Call HH(b, c, d, a, x(10), 23, &HBEBFBC70) ' 40 S34 Call HH(a, b, c, d, x(13), 4, &H289B7EC6) ' 41 S31 Call HH(d, a, b, c, x( 0), 11, &HEAA127FA) ' 42 S32 Call HH(c, d, a, b, x( 3), 16, &HD4EF3085) ' 43 S33 Call HH(b, c, d, a, x( 6), 23, &H4881D05) ' 44 S34 Call HH(a, b, c, d, x( 9), 4, &HD9D4D039) ' 45 S31 Call HH(d, a, b, c, x(12), 11, &HE6DB99E5) ' 46 S32 Call HH(c, d, a, b, x(15), 16, &H1FA27CF8) ' 47 S33 Call HH(b, c, d, a, x( 2), 23, &HC4AC5665) ' 48 S34 ' Round 4 Call II(a, b, c, d, x( 0), 6, &HF4292244) ' 49 S41 Call II(d, a, b, c, x( 7), 10, &H432AFF97) ' 50 S42 Call II(c, d, a, b, x(14), 15, &HAB9423A7) ' 51 S43 Call II(b, c, d, a, x( 5), 21, &HFC93A039) ' 52 S44 Call II(a, b, c, d, x(12), 6, &H655B59C3) ' 53 S41 Call II(d, a, b, c, x( 3), 10, &H8F0CCC92) ' 54 S42 Call II(c, d, a, b, x(10), 15, &HFFEFF47D) ' 55 S43 Call II(b, c, d, a, x( 1), 21, &H85845DD1) ' 56 S44 Call II(a, b, c, d, x( 8), 6, &H6FA87E4F) ' 57 S41 Call II(d, a, b, c, x(15), 10, &HFE2CE6E0) ' 58 S42 Call II(c, d, a, b, x( 6), 15, &HA3014314) ' 59 S43 Call II(b, c, d, a, x(13), 21, &H4E0811A1) ' 60 S44 Call II(a, b, c, d, x( 4), 6, &HF7537E82) ' 61 S41 Call II(d, a, b, c, x(11), 10, &HBD3AF235) ' 62 S42 Call II(c, d, a, b, x( 2), 15, &H2AD7D2BB) ' 63 S43 Call II(b, c, d, a, x( 9), 21, &HEB86D391) ' 64 S44 state(0) = add(state(0), a) state(1) = add(state(1), b) state(2) = add(state(2), c) state(3) = add(state(3), d) Dim i For i = 0 To UBound(x) x(i) = 0 Next End Sub Sub Encode(ByRef output, ByRef inputx, ByVal lenx) Dim i i = 0 Dim j j = 0 Do While j < lenx output(j) = inputx(i) And &HFF output(j + 1) = sr(inputx(i), 8) And &HFF output(j + 2) = sr(inputx(i), 16) And &HFF output(j + 3) = sr(inputx(i), 24) And &HFF i = i + 1 j = j + 4 Loop End Sub Sub Decode(ByRef output, ByRef inputx, ByVal inputxOffset, ByVal lenx) Dim i i = 0 Dim j j = 0 Do While j < lenx Dim k k = j + inputxOffset output(i) = inputx(k) Or sl(inputx(k + 1), 8) Or sl(inputx(k + 2), 16) Or sl(inputx(k + 3), 24) i = i + 1 j = j + 4 Loop End Sub Sub MD5_memcpy(ByRef output, ByVal outputOffset, ByRef inputx, ByVal inputxOffset, ByVal lenx) Dim i For i = 0 To lenx - 1 output(i + outputOffset) = inputx(i + inputxOffset) Next End Sub Function MDString(ByVal stringx) Dim state(3) Dim count(1) Dim buffer(63) Dim digest(15) Dim lenx lenx = Len(stringx) Call MD5Init(state, count, buffer) Call MD5Update(state, count, buffer, ba(stringx), lenx) Call MD5Final(digest, state, count, buffer) Dim s s = MDPrint(digest) MDString = s End Function Function MDPrint(ByRef digest) Dim s s = "" Dim i For i = 0 To 16 - 1 s = s & Right("00" & LCase(Hex(digest(i))), 2) Next MDPrint = s End Function ' RSS1.0 ' rdf:RDF xmlns="http://purl.org/rss/1.0" ' channel ' title ' link ' description ' items ' rdf:Seq ' rdf:li + ' item + ' title ' link ' description ? ' dc:date (YYYY-MM-DDThh:mm) ' ' RSS0.9 ' rdf:RDF xmlns="http://my.netscape.com/rdf/simple/0.9/" ' channel ' title ' description ' link ' image ? ' title ' url ' link ' item + ' title ' link ' textinput ? ' title ' description ' name ' link 'RSS0.91/0.92 もう無い? というかぜんぜん別物 itemの階層が違う 'rss version="0.91" or version="0.92" ' channel ' title ' description ' link ' language ' item+ ' title ' link ' description ' rating? ' ... 'RSS2.0 'rss version="2.0" ' channel ' title,link,description,... ' item+ ' title ' description ' link ' pubDate ' category ' ' Atom 'feed xmlns="http://www.w3.org/2005/Atom ' title ' subtitle ' id ' link ' author ' name ' updated ' entry + ' title ' link ' id ' author ' published ' updated ' category ' summary ' content ' 時刻の扱いRFCなど 'W3CDTF ' YYYY ' YYYY-MM ' YYYY-MM-DD ' YYYY-MM-DDThh:mmTZD ' YYYY-MM-DDThh:mm:ssTZD ' YYYY-MM-DDThh:mm:ss.sTZD TZD = "+09:00" とか "Z"とか '基本的にこれだが、RSS2.0のpubDateのみRFC822の日付 '5.1 SYNTAX ' date-time = [ day "," ] date time ; dd mm yy ' ; hh:mm:ss zzz ' day = "Mon" / "Tue" / "Wed" / "Thu" ' / "Fri" / "Sat" / "Sun" ' date = 1*2DIGIT month 2DIGIT ; day month year ' ; e.g. 20 Jun 82 ' month = "Jan" / "Feb" / "Mar" / "Apr" ' / "May" / "Jun" / "Jul" / "Aug" ' / "Sep" / "Oct" / "Nov" / "Dec" ' time = hour zone ; ANSI and Military ' hour = 2DIGIT ":" 2DIGIT [":" 2DIGIT] ' ; 00:00:00 - 23:59:59 ' zone = "UT" / "GMT" ; Universal Time ' ; North American : UT ' / "EST" / "EDT" ; Eastern: - 5/ - 4 ' / "CST" / "CDT" ; Central: - 6/ - 5 ' / "MST" / "MDT" ; Mountain: - 7/ - 6 ' / "PST" / "PDT" ; Pacific: - 8/ - 7 ' / 1ALPHA ; Military: Z = UT; ' ; A:-1; (J not used) ' ; M:-12; N:+1; Y:+12 ' / ( ("+" / "-") 4DIGIT ) ; Local differential ' ; hours+min. (HHMM) ' ' 2バイト文字1文字をを2文字としてカウントするLeft関数 ' なんとなく正確ではないが桁そろえをしたいので Function LeftJ(s, n) Dim count Dim c, l, i l = 0 If(Len(s)*2 < n) Then LeftJ = s Exit Function End If For i = 1 to Len(s) c = Asc(Mid(s, i, 1)) If (c >= 0) and (c <= 255) Then l = l + 1 Else l = l + 2 End If If l >= n Then LeftJ = Left(s, i) Exit Function End If Next LeftJ = s End Function ' HTMLからタグを除外する 改行も消す 連続するスペースも消す Function GetTextOnly(s) Dim r, re r = GetTextFromHTML(s) r = Replace(r, vbCrlf, " ") r = Replace(r, vbCr, " ") r = Replace(r, vblf, " ") Set re = New RegExp re.Pattern = "([\s ]+)" re.IgnoreCase = true re.Global = true r = re.Replace(r, " ") GetTextOnly = r End Function ' ------------------------------------------------------------------------- ' HTML文から、タグを取り除いたテキスト部分を取得する Function GetTextFromHTML(ss) Dim s Dim i, p Dim c, code Dim result Dim InTag, InComment i = 1 ' i は 文字位置 s = ss InTag = false ' タグ内フラグ InComment = false ' コメント内フラグ ' 結果文字列 result = "" ' NULL の時の対応 If(Len(s) = 0) Then GetTextFromHTML = "" Exit Function End If ' 1文字ずつ処理 Do While i <= Len(s) c = mid(s, i, 1) i = i + 1 code = asc(c) If InComment Then If(c = "-") Then If(mid(s, i, 3) = "-->") Then InComment = false i = i + 2 End If End If ElseIf InTag Then If(c = ">") Then InTag = false End If Else If(c = "<") Then If(mid(s, i , 4) = "" & s Else Application.Lock Application.Contents.Remove(datename) Application.Contents.Remove(dataname) Application.Unlock s = "" & s End If 'Application.Contents("dummy") = 0 'Application.Unlock Call DeleteOldItems(allpara) RSSReader = s Exit Function End If Application.Lock dt1 = Application.Contents(datename) If (IsDate(dt1) = false) or (DateAdd("n", CACHEASPTTL, dt1) < Now) Then Application.Contents(datename) = Now Application.Unlock ' cache timed out s = InternalRSSReader2(url, max, fmt, ctl) If internal_RSSErrorFlag = false Then Application.Lock Application.Contents(datename) = Now Application.Contents(dataname) = s Application.Unlock s = "" & s Else Application.Lock Application.Contents.Remove(datename) Application.Contents.Remove(dataname) Application.Unlock s = "" & s End If ' RSSReader = s ' Exit Function ' s = "" & s ' 古くて使わなくなった値があれば削除する Call DeleteOldItems(allpara) Else s = "" & Application.Contents(dataname) ' s = Application.Contents(dataname) Application.Unlock End If RSSReader = s End Function 'url = "http://www.eleki-jack.com/news/index.xml" 'url = url & "," & "http://www.eleki-jack.com/KitsandKids2/index.xml" 'WScript.Echo RSSReader(url, 10, "{num}.{title:50.}
{summary:100.}
", "LEDファン,GPS") 'WScript.Echo RSSReader2(url, -1, "{date:MM-DD HH:NN}
{title:50.}
{summary:50.}
", "*LEDファン,ニュース") 'WScript.Echo RSSReader2(url, -1, "{date:MM-DD HH:NN}
{title}
{summary:100.}
", "ニュース") 'WScript.Quit %> CQ ham radio - アマチュア無線の専門誌

CQ ham radio 7MHz Activity Award

ブログ こちら編集部

CQ ham radio1月号表紙

1月号
12月18日発売
特別号定価950円

特別付録
〜毎年恒例のハム手帳〜
HAM NOTE BOOK 2011

別冊付録

ご購入はこちら

 2011年の本誌年間テーマは「楽しもうモールス通信」です.そこで,本誌のオリジナル電鍵をGHDキーの技術協力を得て試作しました.写真の“マウス・タッチ・キー”がそれです.モデル名は,二つのパドルが上下に動くイメージから“Pegasus”(ペガサス)と名づけました.パドル操作は,パソコンのマウスをクリックする感覚で快適に行えます.このペガサスは来春,CQ出版社のCQ Web shopで限定100台の発売を予定.詳細情報は追って本誌でご紹介します.ご期待ください!


CQ バックナンバー
DX レポート
関連官庁,団体リンク
ハムショップ情報
メーカー・リンク
DXCCエンティティリスト
JCC/JCGリスト
アマチュア無線用語集
壁紙
別冊CQ ham radio
トランジスタ技術
エレキジャック
RFワールド
Interface
ディジタル・デザイン・テクノロジ
メルマガ登録はこちら
エレクトロニクスセミナ

今月の特集

〜気になるアマチュア無線界の話題を一挙公開〜
2011年 アマチュア無線を楽しもう

〜太陽活動の活発化に期待!〜
サイクル24の動向とお勧めバンドの楽しみ方 JK1OPL 小野 彰彦

〜年末・年始はマイカーからQRV!〜
ノンラジアル・ホイップ・アンテナとマグネット・アンテナ基台でお手軽移動運用
7J3AOZ 白原 浩志

〜パケット通信から位置情報交換システムへ〜
成熟期を迎えたAPRS通信
JS1CYI 吉沢 浩史

〜今年こそ,夢のアマチュア無線環境を手に入れる〜
田舎に2ndシャックを作ろう! JS1CYI 吉沢 浩史

新春2011お年玉モニター募集!

特別寄稿『モールス通信再び』 ノンフィクション作家 山根 一眞

「CQ ham radio CW Activity Award」と「Dot & Dash Award」を発行します 編集部

この人にアマチュア無線を聞け!
この人:JQ2OYC 野尻 抱介さん(SF作家)
聞き手:JA3VAP 水島 章広

特別付録
〜毎年恒例のハム手帳〜
HAM NOTE BOOK 2011

ページトップへ

ビギナーハムコーナー

なるほど!ナットク! アマチュア無線
第12回 新春インタビュー JE1MQF 江口 諒

CQ CQ! ハムハムちゃん
Vol.1 楽しさ発見! アマチュア無線の武藤 初美さん YUKINOTA
(JE1RZB 会沢 友紀)

楽しさ発見! アマチュア無線
No.1 無線機を持って外に出よう! JI1JRE 武藤 初美

ページトップへ

最新情報・コラム

ユーザー・レポート

クリエート・デザイン BS41 JK6JPR 松本 良子

ナガラ電子工業 QFH243 JK2XXK 戸根 伸剛

雨にも負けず風邪にも負けず
芝浦工業大学無線研究部(JA1YXP) 糀谷 樹生

20人の大交信
名古屋大学 アマチュア無線研究会(JA2YKA) 松下 敏法

無線機持って世界へGO! 界のレンタル・シャック・カタログNo.04 
T8パラオ共和国(Republic of Palau) JJ2NYT 中西 剛

夫婦二人で海外運用を楽しむ
JJ6GVX 香月 早苗 JA6EV 香月 武

ARRLのコンテスト・マネージャー KX9X Sean Kutzko氏に聞く
JE1CKA 熊谷 隆王

養成課程第3級短縮コース受講体験レポート JE1WYU 菅野 智寛

とても楽しかった! APDXC 2010 JE2EHP 堤 善昭

アマチュア無線回顧譚 JQ1MEG 長嶋 孝夫

第38回SEANETコンベンション・レポート JA3AER 荒川 泰蔵

各地からのイベント・レポート

JARL臨時総会 編集部

台湾に無線のサロンがオープン JH3GCN 弓削 清博

モニター・レポート

バーテックス スタンダード  FT DX 5000MP
JA1RPK 川名 幸男

本田技研工業 カセット・ガス発電機 ENEPO EU9iGB
JG1KTC 高尾 義則

新製品情報

CQ ham radio CWアワード規約のお知らせ

ページトップへ
テクニカルセクション

エコ発電で無線機を動かそう! JE8MFG 田中 博文

手軽に上げる1.8MHzのアンテナ DK7PE ルディ・クロス

マルツパーツ館「MRX-7D-FK」7MHz SSB/CW受信機キットを作って
実際に通信してみよう JH5MNL 田中 宏

7MHz用平板型スーパー・ラド・アンテナの製作 JA6CX 福山 博之

電源用FETを利用した135kHz帯ハイパワー送信機の製作(後編)
JJ1GRK 高木 誠利

新デバイスによるPSN方式SSB 特性測定の巻 JA1BRS 須賀川 進

ページトップへ
連載

Atsuさんのモールス通信ステップアップ
新連載 終わりのない道 JE1TRV 谷口 敦郎

小説「ハムと少年」 第五回 棕澤 昭二

ハムが楽しむ電子工作の時間
新連載 第1実験室 ブレッドボードとLED で明かりを作る実験
JM3WUD 光永 法明

ハムの日曜ハンドメイド講座
第13回 調子の悪い無線機を直してみよう その5 
TS-520Dのメインテナンスと修理(後編) JH5MNL 田中 宏

136kHzアンテナの考察
第6回 136kHzローディング・コイルの試作2 JF1DMQ 山村 英穂

無線・もっと楽しく!
今月のお題 国民の休日 JL1EEE 井上 博

新連載 自伝的アマチュア無線史 JA1AEA 鈴木 肇

ページトップへ
DX WORLD

近着QSL紹介 まとめ:JA1HGY 間下 尚彦

DX News JK1OPL 小野 彰彦

QSL Information 7K4QOK 中村 肇

DX'erのための近着QSL情報 JI1CYX 太田 伸一

DX Digest JA1ADN 井原 昇

デジタルモードDXing JR1BAS 松谷 福丸 7L4IOU 出島 久己

読者からのDXレポート

ページトップへ
インフォメーション

アワード・ハンティング
CQハムラジオ アワードチーム

コンテスト規約
海外:JE1SPY 芦川 栄晃 7L4IOU 出島 久己 
国内:JK2XXK 戸根 伸剛

CQ情報室

アマチュア無線技士 国家試験案内

アマチュア無線技士 養成課程講習会案内

ページトップへ
マンスリーレポート

ARDF はじめの1TX JP3EVM 植木 等

About VHF JA1AN 原 昌三

ワールド・ハムラジオ JE1HYR 井端 一雅

新・移動運用セミナー JG1KTC 高尾 義則

記念局運用情報 編集部

D-STAR Information 7L1FFN/2 磯 直行

VoIPでアマチュア無線 JS1CYI 吉沢 浩史

コンテスト JE1SPY 芦川 栄晃

マイクロウェーブワールド JF1TPR 熊野谿 寛

50MHz JL3IQE 西野 康則

V/UHF帯を楽しもう 7K1XXS 志賀 晃

EME(Earth-Moon-Earth) JH1KRC 渡辺 美千明

衛星通信情報 JN1GKZ 新井 雅裕

今月の電波伝搬予報 編集部

ページトップへ
読者の広場

ローカルトピックス
ハム交換室
原稿募集のお知らせ
ローカルトピックス/ハム交換室 投稿用紙
読者の声
ハム・クイズ
次号のお知らせ/編集部から

ページトップへ
日本アマチュア無線連盟編集のページ

FROM J.A.R.L.(JARL情報)