Masukkan butang arahan dalam Sheet2 dan atur cara seperti berikut:
Button Sub Perintah Peribadi1_Klik()
Malapkan i1 Selagi, i2 Selagi
Malapkan a$, b$
i2 = 2
Julat Lakukan Semasa("C" & i2) ""
a$ = ""
b$ = ""
i1 = 1
Lakukan Sambil Lembaran Kerja("Helaian1").Julat("C" & i1) ""
Jika Lembaran Kerja("sheet1").Julat("C" & i1) = Julat("C" & i2) Kemudian
a$ = a$ & Lembaran Kerja("lembaran1").Julat("A" & i1) & ";"
b$ = b$ & Lembaran Kerja("lembaran1").Julat("B" & i1) & ";"
Tamat Jika
i1 = i1 + 1
Gelung
Jika a$ "" Kemudian a$ = Kiri(a$, Len(a$) - 1)
Jika b$ "" Kemudian b$ = Kiri(b$, Len(b$) - 1)
Julat("A"& i2) = a$
Julat("B"& i2) = b$
i2 = i2 + 1
Gelung
Tamat Sub
Baris arahan ini boleh membantu anda memadamkan blok komit yang mengandungi Gabung (sebarang berbilang blok teks sedemikian)
sed -n '/commit/{:a;h;n;/Merge/b;:c;H;n;$bd;/commit/!bc;:d;x;p;x;ba}' > log.txt
Kesan operasi adalah seperti berikut:
Arahan saya mungkin agak rumit. Sedikit penerangan, sekadar rujukan:
Di mana: a :b :c :d ialah label label lompat arahan
1. /commit/{:a;h;n;
Apabila baris komit ditemui, salin baris ini ke ruang tahan dan baca baris seterusnya.
2. /Gabung/b;
Jika baris baru baru dibaca mengandungi Gabung, kemudian tamatkan pemprosesan baris ini, baca baris seterusnya, dan teruskan mencari komit
Jika baris baharu baru dibaca tidak mengandungi Gabung, maka teruskan laksanakan arahan seterusnya pada baris ini:
3. :c;H;n;$bd;/commit/!bc;:d;x;p;x;ba}
Tambahkan baris ini ke ruang tahan dan baca baris seterusnya Jika baris terakhir tidak dicapai dan komit tidak dijumpai, laksanakan arahan bc dan lompat ke label c - gelung proses ini sehingga akhir fail dibaca atau. baca Pergi ke baris yang mengandungi komit. Kemudian, x, menukar kandungan ruang tahan dengan kandungan ruang corak, p, mengeluarkan kandungan ruang corak (iaitu, blok yang tidak mengandungi Gabungan), x, menukarnya semula, dan ruang corak menjadi kandungan sebelumnya (penghujung fail atau mengandungi baris komit). ba, lompat ke label a, teruskan semak baris ini, dan ulangi langkah 1, 2, dan 3.
Jika arahan di atas ditukar kepada:
sed -n '/commit/{:a;h;n;/Merge/!b;:c;H;n;$bd;/commit/!bc;:d;x;p;x;ba}' log > log.txt
Kemudian, hasil output ialah, hanya blok komit yang mengandungi Gabung
Memandangkan terdapat data 1 digit dan data 4 digit, jika tiada pengembalian pengangkutan khas dalam txt, bilangan baris dan lajur tidak dapat ditentukan. Jika ada pemulangan pengangkutan, gunakan sahaja
#include
char *strtok( char *str1, const char *str2 );
Ia akan diselesaikan.
Mula-mula gunakan getline() untuk membaca str setiap baris dan mengumpul bilangan baris, kemudian
char *hasil = NULL;
rentetan aksara[100][100];
int x = 0;
hasil = strtok( str, " ");
sementara( keputusan != NULL ) {
strcpy(rentetan[x++] , hasil);
hasil = strtok( NULL, " " );
}
Dengan cara ini, semua data boleh disimpan menggunakan tatasusunan rentetan. x merekodkan jumlah bilangan, kemudian x dibahagikan dengan bilangan baris ialah bilangan lajur.
Saya bebas hari ini, saya akan membantu anda menulis keseluruhan program:
#include
#include
#include
menggunakan ruang nama std;
void main(){
char ch[100] = "
char b[100][100];int x=0,y=0;
ifstream fin("123.txt",ios::in);
fin.getline(ch,100);
sementara(!fin.eof()){
++x;
cout char *hasil = NULL;
hasil = strtok(ch,",");
sementara( keputusan != NULL ) {
strcpy(b[y++],hasil);
cout hasil = strtok( NULL, "," );
}
memset(ch,0,100);
fin.getline(ch,100);
}
fin.close();
}
//Ia telah dijalankan sebelum ini, tiada masalah, b[100][100] ialah semua elemen, x ialah bilangan baris, y/x ialah bilangan lajur.
Atas ialah kandungan terperinci Excel menentukan bahawa baris memenuhi keperluan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!