- ベストアンサー
タブ区切りデータの配列化方法について
Rasyukiの回答
No.1です。 <? $test_string = "aaa bbb ccc ddd"; print_r(explode(" ",$test_string)); print_r(split(" ",$test_string)); ?> Array ( [0] => aaa [1] => bbb [2] => ccc [3] => [4] => [5] => ddd ) Array ( [0] => aaa [1] => bbb [2] => ccc [3] => [4] => [5] => ddd ) 格納されました。
関連するQ&A
- 配列から構造体へデータコピー
配列から構造体へデータのコピーをしたいのですが、 構造体のメンバがビットフィールドで構成されている時の処理がわかりません。 --------test.c----------- #include <stdio.h> #include <string.h> typedef struct{ unsigned char aaa :1; unsigned char bbb :1; unsigned char ccc :1; unsigned int ddd :13; unsigned char eee :2; unsigned char fff :2; unsigned char ggg :4; }test_t; int main(void) { test_t test_t; unsigned char data[]={0x5F, 0xFE, 0x1C}; memcpy(&test_t, data, 4); printf("aaa = %X\n", test_t.aaa); printf("bbb = %X\n", test_t.bbb); printf("ccc = %X\n", test_t.ccc); printf("ddd = %d\n", test_t.ddd); printf("eee = %X\n", test_t.eee); printf("fff = %X\n", test_t.fff); printf("ggg = %X\n", test_t.ggg); return 0; } ------期待出力--------- aaa = 0 bbb = 1 ccc = 0 ddd = 1FFE eee = 0 fff = 1 ggg = 12 「test.c」を実行した時に「期待出力」のような出力を期待していたのですが、実際には aaa = 1 bbb = 1 ccc = 1 ddd = 1 eee = 0 fff = 0 ggg = 0 と表示されてしまいます。 ビットフィールドで構成された構造体に、配列の値をそのままあてる事は出来ないのでしょうか? 出来るだけ、マスクやシフト演算を使用しないで、配列からビット単位で値を抽出したいのですが・・・
- 締切済み
- C・C++・C#
- タブ区切りのデータについて
Perlを独学している初心者です。すごく初歩的なことでわからないことがありますので、ご質問いたします。 タブ区切りのデータの中で、5列目に LBa3_00011、13列目に1があるデータを検索し、5列目、6列目、7列目だけを表示したいと思っております。 下記のようなものを作ったのですが、うまくいきませんでした。 基本的な書き方が違っているかもしれませんが、何かアドバイスを頂けると、助かります。 use strict; use warnings; while($_=<>){ @ar = split(/\t/, $_); if ( /$ar[5] = LBa3_00011/ and /$ar[13] == 1/ ){ print;"$ar[5]\t$ar[6]\t$ar[7]\n"; } } 簡単すぎるような質問であれば、すみません・・・・・
- ベストアンサー
- Perl
- 正規表現で一つ目の区切り文字で区切りたいのですが・・・
aaa/bbb/ccc/ddd aaa/bbb/ccc/ddd/eee aaa/ccc/ddd $a=~/(.*)\/(.*)/; $1はそれぞれ aaa/bbb/ccc aaa/bbb/ccc/ddd aaa/ccc と成ってしまいます。 このように 「最後の/」で分けられてしまいます。 一つ目の/で分けるにはどうしたらよいでしょうか。
- ベストアンサー
- Perl
- 分岐SQLを一発のSQLで実現したい
【データベース:SQLServer2005】 SQLのアドバイスを頂きたいです。 【テーブル】 テーブル名:Table1 フィールド名:種類、キー1、キー2 テーブル名:Table2 フィールド名:種類、キー1、キー2 テーブル名:Table3 フィールド名:種類、キー1、キー2 【データ】 Table1 種類、キー1、キー2 001 AAA BBB 001 AAA CCC 001 AAA DDD Table2 種類、キー1、キー2 002 AAA BBB 002 AAA CCC NULL AAA DDD Table3 種類、キー1、キー2 NULL AAA BBB NULL AAA CCC NULL AAA DDD これをUNIONで取得します。 種類、キー1、キー2 001 AAA BBB 001 AAA CCC 001 AAA DDD 002 AAA BBB 002 AAA CCC NULL AAA DDD NULL AAA BBB NULL AAA CCC 実現したいのは、 1)同種類、キー1、キー2のデータで、 種類にNULLが含まれていたら、NULLのデータは取得しない 2)同種類、キー1、キー2のデータで、 種類にNULLしかないデータは、取得する 001 AAA BBB 001 AAA CCC 001 AAA DDD 002 AAA BBB 002 AAA CCC NULL AAA DDD →いる NULL AAA BBB →いらない NULL AAA CCC →いらない ↓結果 001 AAA CCC 001 AAA DDD 002 AAA BBB 002 AAA CCC NULL AAA DDD 上記を実現する為、UNION後のSQLでも構わないので、 一発のSQLで取得する事は可能でしょうか? 有識者の方にご享受頂ければ幸いです。 どうぞ宜しくお願い申し上げます。
- ベストアンサー
- SQL Server
- 該当項目表示について
csvデータの列に%で区切った項目があります。 例) 1行目:aaa%bbb%ccc 2行目:aaa&bbb%ddd 3行目:aaa%bbb 3番目の項目(上記例ではccc、ddd)を 1、2番目の項目に該当させるには以下のスクリプトをどのように 変更すればよろしいのでしょうか? いろいろ調査や変更実行してみましたがうまく動きません。 $find = 0; for($d = 0 ; $d < @TEST ; ++$d) { chomp $TEST[$d]; (@ITEM) = split(/\,/, $TEST[$d]); @T = split(/\%/, @ITEMD[2]); #csvデータ内項目%区切り if($in{'item'} eq @T[0]) { if(($in{'item2'} eq "") or ($in{'item2'} eq "全て")) { @FIND[$find] = $TEST[$d]; $find++; } elsif($in{'item2'} eq @T[1]) { @FIND[$find] = $TEST[$d]; $find++; } } } 上記スクリプトに3番目も含める為にはどのようにすればよいのでしょうか? ご教授お願いいたします。
- ベストアンサー
- Perl
- 2つの条件に完全合致するデータ件数の出し方 (Excel)
下記【↓データ元】ようにカンマ区切りされているデータがあり、任意の2つの条件に合致するデータ数をマトリクス表形式で埋め込みたいと考えています。 完全一致するデータのみカウント対象とするので(ex.CCC(株)等、条件文字に追加文字があるようなものは除く)、splitで配列に入れてfindで一つ一つ検索していくしかないでしょうか? (データ数が多いと、処理時間がとてもかかるので・・・。) 私が行いたいと思っていた解決策に直結するような下記サイトがあったのですが、これだと条件文字が含んでいればカウント対象(ex.CCC(株)等、条件文字に追加文字があるものも対象)となってしまうので、ご助言いただきたく書き込みしました。 何かアドバイスがありましたら、宜しくお願いいたします。 【↓参考になりそうだと思われたサイト】 http://ohpa.net/modules/xlnote/content0166.html 【↓データ元】 AAA BBB,CCC DDD CCC,AAA AAA,CCC BBB 【↓出力イメージ】 AAA BBB CCC DDD AAA 1 0 2 0 BBB 0 1 1 0 CCC 2 1 0 0 DDD 1 0 0 0
- 締切済み
- Visual Basic
- 配列に入っている値のソート
str(1)="bbb" str(2)="aaa" str(3)="ddd" str(4)="eee" str(5)="ccc" という配列があるとします。 これを昇順にソートさせて、 str(1)="aaa" str(2)="bbb" str(3)="ccc" str(4)="ddd" str(5)="eee" とさせたいのですが、どのようにすればよろしいでしょうか?
- ベストアンサー
- Visual Basic
- ArrayListに多次元配列
ArrayListに多次元配列の変数を格納したのですが、取り出し方がわからず困っています。 ----------------------------------------------- String[][] str = {{"aaa","bbb","ccc","ddd","eee","fff"}, {"aaa","bbb","ccc","ddd","eee","fff"}, }}; ArrayList array = new ArrayList(); array.add(str[0]); array.add(str[1]); ----------------------------------------------- 上記の場合で、str[0][2];を取得する方法がわかりません。 java初心者なのでおかしな質問かもしれませんが、宜しくお願いします。
- ベストアンサー
- Java