ホームページ  >  記事  >  ソフトウェアチュートリアル  >  Excel は行が要件を満たしていると判断します

Excel は行が要件を満たしていると判断します

王林
王林転載
2024-01-12 18:48:32753ブラウズ

Excel は行が要件を満たしていると判断します

Sheet2 にコマンド ボタンを挿入し、次のようにプログラムします:

プライベートサブコマンドボタン1_Click()

i1 を同じ長さ、i2 を長さだけ暗くする

a$、b$

を暗くします

i2 = 2

Do While Range("C" & i2) """

a$ = ""

b$ = ""

i1 = 1

Do While Worksheets("Sheet1").Range("C" & i1) """

If Worksheets("sheet1").Range("C" & i1) = Range("C" & i2) then

a$ = a$ & ワークシート("sheet1").Range("A" & i1) & ";"

b$ = b$ & ワークシート("sheet1").Range("B" & i1) & ";"

終了の場合

i1 = i1 1

###ループ###

If a$

"" then a$ = Left(a$, Len(a$) - 1)

If b$

"" then b$ = Left(b$, Len(b$) - 1)

範囲("A"& i2) = a$

範囲("B"& i2) = b$

i2 = i2 1

###ループ###

エンドサブ

Linux で特定の文字列の前後の数行のテキストを取得する方法

このコマンド行は、Merge を含むコミット ブロック (このようなテキスト ブロックが複数ある場合) を削除するのに役立ちます。

sed -n '/commit/{:a;h;n;/Merge/b;:c;H;n;$bd;/commit/!bc;:d;x;p;x;ba} ' ログ > log.txt

操作効果は次のとおりです:

私のコマンドは少し複雑かもしれません。参考までに少し説明します:

ここで: a :b :c :d はコマンドジャンプラベル labelExcel は行が要件を満たしていると判断します

1. /コミット/{:a;h;n;

コミットが行で見つかった場合は、この行をホールド スペースにコピーして、次の行を読み取ります。

2./マージ/b;

読み取ったばかりの新しい行に Merge が含まれている場合は、この行の処理を終了し、次の行を読み、コミットの検索を続けます

読み取ったばかりの新しい行に Merge が含まれていない場合は、この行で後続のコマンドを実行し続けます。

3. :c;H;n;$bd;/commit/!bc;:d;x;p;x;ba}

この行をホールド スペースに追加し、次の行を読み取ります。最後の行に到達せず、コミットが見つからない場合は、コマンド bc を実行して c ラベルにジャンプします。ファイルの終わりまでこのプロセスをループします。 read または commit を含む行を読み取ります。次に、x はホールド スペースの内容をパターン スペースの内容と交換し、p はパターン スペースの内容 (つまり、マージを含まないブロック) を出力します。x はそれを再度交換し、パターンスペースは前の内容 (ファイルの終わりまたはコミット行を含む) になります。 ba、ラベル a にジャンプし、この行を引き続きチェックし、ステップ 1、2、および 3 を繰り返します。

上記のコマンドを次のように変更すると:

sed -n '/commit/{:a;h;n;/Merge/!b;:c;H;n;$bd;/commit/!bc;:d;x;p;x;ba }' ログ > log.txt

すると、出力結果はMergeを含むコミットブロックのみとなります

MFC で TXT ファイルのデータと行数と列数を読み取ります

1桁のデータと4桁のデータがあるため、txt内に特別な改行がないと行数と列数が決まりません。復帰がある場合は、単純に

を使用します。 ####含む ######

char *strtok( char *str1, const char *str2 );

は解決できます。

まず getline() を使用して行ごとに str を読み取り、行数を累積してから、

char *結果 = NULL;

文字列[100][100];

int x = 0;

結果 = strtok( str, " ");

while( 結果 != NULL ) {

strcpy(string[x] , result);

結果 = strtok( NULL, " " );

}

このようにして、すべてのデータを文字列配列を使用して保存できます。 x は合計数を記録し、x を行数で割ったものが列数となります。

今日は暇ですので、プログラム全体の作成をお手伝いします:

####含む###### ####含む###### ####含む######

名前空間 std を使用します;

void main(){

char ch[100] = "\0";

文字 b[100][100];

int x=0,y=0;

ifstream fin("123.txt",ios::in);

fin.getline(ch,100);

while(!fin.eof()){

### バツ;### cout

char *結果 = NULL;

結果 = strtok(c​​h,",");

while( 結果 != NULL ) {

strcpy(b[y ],result);

cout

結果 = strtok( NULL, "," );

}

memset(ch,0,100);

fin.getline(ch,100);

}

fin.close();

}

//これは以前にも実行されていますが、問題ありません。b[100][100] はすべての要素、x は行数、y/x は列数です。

以上がExcel は行が要件を満たしていると判断しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はdocexcel.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。