置き換え

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する

文字列関連処理で作ってみたいもの

1 個までオプションを選択できます

 
 
投票結果を見る

メッセージ
作成者
MML
記事: 154
登録日時: 2006年5月02日(火) 16:27

置き換え

#1 投稿記事 by MML »

エディタ(TextEditor)で置き換え機能を作ろうと思って
以下のようなスクリプトを書いたのですが、動きません。
どこが悪いか教えていただけないでしょうか、、、

コード: 全て選択

Function Replace(Mojiret As String,Okikae1 As String,Okikae2 As String,OMOJI As Byte) As String
	Dim Mojisu1 As Long
	Dim Mojisu2 As Long
	Dim Num As Long
	Dim Okikae3 As String
	Dim Mojiret2 As String
	Dim ST As Long
	Mojisu1 = Len(Okikae1)
	Mojisu2 = Len(Mojiret)
	Num = 0
	Okikae3 = ""
	ST=0
	Mojiret2 = ""
	For Num=1 To Mojisu2
		'置換処理。
		Okikae3 = Mid$(Mojiret,Num,Mojisu1)
		ST = CompareString(LOCALE_USER_DEFAULT,NORM_IGNORECASE,Okikae1,-1,Okikae2,-1)
		if ST=CSTR_EQUAL Then
			Mojiret2 = Mojiret2 & Okikae2
		else
			Mojiret2 = Mojiret2 & Okikae3
		end if
	Next
	Replace = Mojiret2
End Function
omasu
記事: 96
登録日時: 2005年9月02日(金) 22:15
連絡する:

文字列の置き換えについて

#2 投稿記事 by omasu »

お世話になります。

 以下のプロシージャで実行できますでしょうか?
7
記事: 473
登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:

Re: 置き換え

#3 投稿記事 by 7 »

昔どっかで文字列操作の関数群を見たことがあるんだけどな~っと思って「文字列操作 関数群」で検索してみたらあっさりと発見しました。
ActiveBasic用文字列操作モジュール

転載は許可なしに行っても構わないと書いてあるので転載させてもらいます。
製作者は三澤 慧さん。
なお、動作はAB3.07で確認しています、とのこと。
あ~なるほど~こうやってやるんだ~と思いました。
omasu
記事: 96
登録日時: 2005年9月02日(金) 22:15
連絡する:

文字列の置き換えについてⅡ

#4 投稿記事 by omasu »

お世話になります。

申し訳ありません。
 検証不足で前回コードはバグがありました。
 7さんの提示していただいたコードを参考に手直ししました。
 7さんありがとうございます。

ついでに、検索する文字列が「NULL」でも可能としました。
追伸:InStr関数は検索開始位置を指定しても、
    戻り値はその対象文字列の頭からの数値が返る・・・、今回初めて気づきました。
MML
記事: 154
登録日時: 2006年5月02日(火) 16:27

Re: 文字列の置き換えについてⅡ

#5 投稿記事 by MML »

こんにちは。返信遅れてすみません。
ゆちボンです。

置き換えの資料、コードなど、
いろいろとありがとうございました。
返信する