質問編集履歴

5

ソースを修正

2018/09/23 05:03

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -140,7 +140,7 @@
140
140
 
141
141
  }
142
142
 
143
-
143
+ ```
144
144
 
145
145
  ### 試したこと
146
146
 

4

必要でない部分を削除

2018/09/23 05:03

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -140,328 +140,6 @@
140
140
 
141
141
  }
142
142
 
143
- ```
144
-
145
- ```ここに言語を入力
146
-
147
- package com.example.lavi.mojitest;
148
-
149
-
150
-
151
- import android.content.Context;
152
-
153
- import android.content.res.AssetManager;
154
-
155
- import android.database.SQLException;
156
-
157
- import android.database.sqlite.SQLiteDatabase;
158
-
159
- import android.database.sqlite.SQLiteOpenHelper;
160
-
161
- import android.database.sqlite.SQLiteStatement;
162
-
163
- import android.util.Log;
164
-
165
-
166
-
167
- import java.io.BufferedReader;
168
-
169
- import java.io.IOException;
170
-
171
- import java.io.InputStream;
172
-
173
- import java.io.InputStreamReader;
174
-
175
- import java.util.ArrayList;
176
-
177
- import java.util.Iterator;
178
-
179
- import java.util.List;
180
-
181
-
182
-
183
- public class WordsDatabaseHelper extends SQLiteOpenHelper {
184
-
185
- static final private String DB_NAME = "words.sqlite";
186
-
187
- static final private int VERSION = 1;
188
-
189
- private String[] fileName={"category","data","large","middle","small","lang"};
190
-
191
- private Context context;
192
-
193
- private String[] data;
194
-
195
- private int[][] intData;
196
-
197
- int intCol;
198
-
199
-
200
-
201
-
202
-
203
- public WordsDatabaseHelper(Context context) {
204
-
205
- super(context, DB_NAME, null, VERSION);
206
-
207
- this.context = context;
208
-
209
- }
210
-
211
-
212
-
213
- @Override
214
-
215
- public void onOpen(SQLiteDatabase db) {
216
-
217
- super.onOpen(db);
218
-
219
- }
220
-
221
-
222
-
223
- private void buildTable(SQLiteDatabase db){
224
-
225
- String[] createSQL={
226
-
227
- "CREATE TABLE [category] (" +
228
-
229
- "[category_id] INTEGER NOT NULL UNIQUE," +
230
-
231
- "[large_id] INTEGER DEFAULT '0'," +
232
-
233
- "[middle_id] INTEGER DEFAULT '0'," +
234
-
235
- "[small_id] INTEGER DEFAULT '0'," +
236
-
237
- "[lang_id] INTEGER DEFAULT '0'," +
238
-
239
- "[sample] VARCHAR(255),\n" +
240
-
241
- "PRIMARY KEY([category_id])" +
242
-
243
- ");"
244
-
245
-
246
-
247
- ,"CREATE TABLE [data](" +
248
-
249
- "[category_id] INTEGER, " +
250
-
251
- "[number] INTEGER, " +
252
-
253
- "[data] VARCHAR(255), " +
254
-
255
- "PRIMARY KEY([category_id],[number])" +
256
-
257
- ");"
258
-
259
-
260
-
261
- ,"CREATE TABLE [large](" +
262
-
263
- "[large_id] INTEGER PRIMARY KEY, " +
264
-
265
- "[large] VARCHAR(255));"
266
-
267
-
268
-
269
- ,"CREATE TABLE [middle](" +
270
-
271
- "[middle_id] INTEGER PRIMARY KEY, " +
272
-
273
- "[large_id] INTEGER, " +
274
-
275
- "[middle_num] INTEGER, " +
276
-
277
- "[middle] VARCHAR(255));"
278
-
279
-
280
-
281
- ,"CREATE TABLE [small](" +
282
-
283
- "[small_id] INTEGER PRIMARY KEY, " +
284
-
285
- "[small] VARCHAR(255));"
286
-
287
-
288
-
289
- ,"CREATE TABLE [lang](" +
290
-
291
- "[lang_id] INTEGER PRIMARY KEY," +
292
-
293
- "[lang] VARCHAR(255));"
294
-
295
- };
296
-
297
- String[] insertSQL={
298
-
299
- " (category_id,large_id,middle_id,small_id,lang_id,sample) VALUES(?,?,?,?,?,?)",
300
-
301
- " (category_id,number,data) VALUES(?,?,?)",
302
-
303
- " (large_id,large) VALUES(?,?)",
304
-
305
- " (middle_id,large_id,middle_num,middle) VALUES(?,?,?,?)",
306
-
307
- " (small_id,small) VALUES(?,?)",
308
-
309
- " (lang_id,lang) VALUES(?,?)"};
310
-
311
-
312
-
313
- for (int i = 0; i < fileName.length; i++) {
314
-
315
- List<String> strList=readFile(fileName[i]);
316
-
317
-
318
-
319
- db.execSQL(createSQL[i]);
320
-
321
- db.beginTransaction();
322
-
323
- try {
324
-
325
- for (int j = 1; j <strList.size()-1; j++) {
326
-
327
- String[] strValue=(strList.get(j).split(","));
328
-
329
-
330
-
331
- SQLiteStatement sql = db.compileStatement(
332
-
333
- "INSERT INTO "+fileName[i]+insertSQL[i]);
334
-
335
- for (int k = 0; k <strValue.length ; k++) {
336
-
337
- strValue[k]=strValue[k].replaceAll("\"","");//余計な"を消す
338
-
339
- if(isNum(strValue[k])) {
340
-
341
- sql.bindLong(k+1, Integer.valueOf(strValue[k]));
342
-
343
- }else {
344
-
345
- sql.bindString(k+1, strValue[k]);
346
-
347
- }
348
-
349
- }
350
-
351
- sql.executeInsert();
352
-
353
-
354
-
355
- }
356
-
357
- db.setTransactionSuccessful();
358
-
359
- } catch (SQLException e) {
360
-
361
- e.printStackTrace();
362
-
363
- } finally {
364
-
365
- db.endTransaction();
366
-
367
- }
368
-
369
- }
370
-
371
- }
372
-
373
-
374
-
375
- private boolean isNum(String number) {
376
-
377
- try {
378
-
379
- Integer.parseInt(number);
380
-
381
- return true;
382
-
383
- } catch (NumberFormatException e) {
384
-
385
- return false;
386
-
387
- }
388
-
389
- }
390
-
391
-
392
-
393
- private List<String> readFile(String filename){
394
-
395
- //csvファイル読み込み
396
-
397
- AssetManager assetManager = context.getResources().getAssets();
398
-
399
- List<String> list = null;
400
-
401
-
402
-
403
- try {
404
-
405
- InputStream inputStream = assetManager.open(filename+".csv");
406
-
407
- InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
408
-
409
- BufferedReader br = new BufferedReader(inputStreamReader);
410
-
411
- String line;
412
-
413
- list = new ArrayList<String>();
414
-
415
- line = br.readLine();
416
-
417
- while ((line = br.readLine()) != null) {
418
-
419
- list.add(line);
420
-
421
- }
422
-
423
- br.close();
424
-
425
- } catch (IOException e) {
426
-
427
- e.printStackTrace();
428
-
429
- }
430
-
431
- return list;
432
-
433
- }
434
-
435
-
436
-
437
- @Override
438
-
439
- public void onCreate(SQLiteDatabase db) {
440
-
441
- buildTable(db);
442
-
443
- }
444
-
445
-
446
-
447
- @Override
448
-
449
- public void onUpgrade(SQLiteDatabase db, int old_v, int new_v) {
450
-
451
- db.execSQL("DROP TABLE IF EXISTS words");
452
-
453
- onCreate(db);
454
-
455
- }
456
-
457
- }
458
-
459
-
460
-
461
- ```
462
-
463
-
464
-
465
143
 
466
144
 
467
145
  ### 試したこと
@@ -480,8 +158,6 @@
480
158
 
481
159
  ### 補足情報(FW/ツールのバージョンなど)
482
160
 
483
- windows10 64bit
484
-
485
161
  android studio 3.1.4
486
162
 
487
163
  classpath 'com.android.tools.build:gradle:3.1.4'

3

開発環境追記

2018/09/23 05:02

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -338,8 +338,6 @@
338
338
 
339
339
  if(isNum(strValue[k])) {
340
340
 
341
- Log.d("", "にゃ:"+i+"j="+k+"val="+strValue[k]);
342
-
343
341
  sql.bindLong(k+1, Integer.valueOf(strValue[k]));
344
342
 
345
343
  }else {
@@ -482,7 +480,21 @@
482
480
 
483
481
  ### 補足情報(FW/ツールのバージョンなど)
484
482
 
483
+ windows10 64bit
484
+
485
+ android studio 3.1.4
486
+
487
+ classpath 'com.android.tools.build:gradle:3.1.4'
488
+
489
+ testImplementation 'junit:junit:4.12'
490
+
491
+ testImplementation 'org.hamcrest:hamcrest-library:1.3'
492
+
493
+ androidTestImplementation 'com.android.support.test:runner:1.0.2'
494
+
495
+ androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
496
+
485
- compileSdkVersion 27
497
+ compileSdkVersion 27
486
498
 
487
499
  minSdkVersion 16
488
500
 

2

継承したクラスのソースを追加しました。

2018/09/22 08:16

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -142,6 +142,328 @@
142
142
 
143
143
  ```
144
144
 
145
+ ```ここに言語を入力
146
+
147
+ package com.example.lavi.mojitest;
148
+
149
+
150
+
151
+ import android.content.Context;
152
+
153
+ import android.content.res.AssetManager;
154
+
155
+ import android.database.SQLException;
156
+
157
+ import android.database.sqlite.SQLiteDatabase;
158
+
159
+ import android.database.sqlite.SQLiteOpenHelper;
160
+
161
+ import android.database.sqlite.SQLiteStatement;
162
+
163
+ import android.util.Log;
164
+
165
+
166
+
167
+ import java.io.BufferedReader;
168
+
169
+ import java.io.IOException;
170
+
171
+ import java.io.InputStream;
172
+
173
+ import java.io.InputStreamReader;
174
+
175
+ import java.util.ArrayList;
176
+
177
+ import java.util.Iterator;
178
+
179
+ import java.util.List;
180
+
181
+
182
+
183
+ public class WordsDatabaseHelper extends SQLiteOpenHelper {
184
+
185
+ static final private String DB_NAME = "words.sqlite";
186
+
187
+ static final private int VERSION = 1;
188
+
189
+ private String[] fileName={"category","data","large","middle","small","lang"};
190
+
191
+ private Context context;
192
+
193
+ private String[] data;
194
+
195
+ private int[][] intData;
196
+
197
+ int intCol;
198
+
199
+
200
+
201
+
202
+
203
+ public WordsDatabaseHelper(Context context) {
204
+
205
+ super(context, DB_NAME, null, VERSION);
206
+
207
+ this.context = context;
208
+
209
+ }
210
+
211
+
212
+
213
+ @Override
214
+
215
+ public void onOpen(SQLiteDatabase db) {
216
+
217
+ super.onOpen(db);
218
+
219
+ }
220
+
221
+
222
+
223
+ private void buildTable(SQLiteDatabase db){
224
+
225
+ String[] createSQL={
226
+
227
+ "CREATE TABLE [category] (" +
228
+
229
+ "[category_id] INTEGER NOT NULL UNIQUE," +
230
+
231
+ "[large_id] INTEGER DEFAULT '0'," +
232
+
233
+ "[middle_id] INTEGER DEFAULT '0'," +
234
+
235
+ "[small_id] INTEGER DEFAULT '0'," +
236
+
237
+ "[lang_id] INTEGER DEFAULT '0'," +
238
+
239
+ "[sample] VARCHAR(255),\n" +
240
+
241
+ "PRIMARY KEY([category_id])" +
242
+
243
+ ");"
244
+
245
+
246
+
247
+ ,"CREATE TABLE [data](" +
248
+
249
+ "[category_id] INTEGER, " +
250
+
251
+ "[number] INTEGER, " +
252
+
253
+ "[data] VARCHAR(255), " +
254
+
255
+ "PRIMARY KEY([category_id],[number])" +
256
+
257
+ ");"
258
+
259
+
260
+
261
+ ,"CREATE TABLE [large](" +
262
+
263
+ "[large_id] INTEGER PRIMARY KEY, " +
264
+
265
+ "[large] VARCHAR(255));"
266
+
267
+
268
+
269
+ ,"CREATE TABLE [middle](" +
270
+
271
+ "[middle_id] INTEGER PRIMARY KEY, " +
272
+
273
+ "[large_id] INTEGER, " +
274
+
275
+ "[middle_num] INTEGER, " +
276
+
277
+ "[middle] VARCHAR(255));"
278
+
279
+
280
+
281
+ ,"CREATE TABLE [small](" +
282
+
283
+ "[small_id] INTEGER PRIMARY KEY, " +
284
+
285
+ "[small] VARCHAR(255));"
286
+
287
+
288
+
289
+ ,"CREATE TABLE [lang](" +
290
+
291
+ "[lang_id] INTEGER PRIMARY KEY," +
292
+
293
+ "[lang] VARCHAR(255));"
294
+
295
+ };
296
+
297
+ String[] insertSQL={
298
+
299
+ " (category_id,large_id,middle_id,small_id,lang_id,sample) VALUES(?,?,?,?,?,?)",
300
+
301
+ " (category_id,number,data) VALUES(?,?,?)",
302
+
303
+ " (large_id,large) VALUES(?,?)",
304
+
305
+ " (middle_id,large_id,middle_num,middle) VALUES(?,?,?,?)",
306
+
307
+ " (small_id,small) VALUES(?,?)",
308
+
309
+ " (lang_id,lang) VALUES(?,?)"};
310
+
311
+
312
+
313
+ for (int i = 0; i < fileName.length; i++) {
314
+
315
+ List<String> strList=readFile(fileName[i]);
316
+
317
+
318
+
319
+ db.execSQL(createSQL[i]);
320
+
321
+ db.beginTransaction();
322
+
323
+ try {
324
+
325
+ for (int j = 1; j <strList.size()-1; j++) {
326
+
327
+ String[] strValue=(strList.get(j).split(","));
328
+
329
+
330
+
331
+ SQLiteStatement sql = db.compileStatement(
332
+
333
+ "INSERT INTO "+fileName[i]+insertSQL[i]);
334
+
335
+ for (int k = 0; k <strValue.length ; k++) {
336
+
337
+ strValue[k]=strValue[k].replaceAll("\"","");//余計な"を消す
338
+
339
+ if(isNum(strValue[k])) {
340
+
341
+ Log.d("", "にゃ:"+i+"j="+k+"val="+strValue[k]);
342
+
343
+ sql.bindLong(k+1, Integer.valueOf(strValue[k]));
344
+
345
+ }else {
346
+
347
+ sql.bindString(k+1, strValue[k]);
348
+
349
+ }
350
+
351
+ }
352
+
353
+ sql.executeInsert();
354
+
355
+
356
+
357
+ }
358
+
359
+ db.setTransactionSuccessful();
360
+
361
+ } catch (SQLException e) {
362
+
363
+ e.printStackTrace();
364
+
365
+ } finally {
366
+
367
+ db.endTransaction();
368
+
369
+ }
370
+
371
+ }
372
+
373
+ }
374
+
375
+
376
+
377
+ private boolean isNum(String number) {
378
+
379
+ try {
380
+
381
+ Integer.parseInt(number);
382
+
383
+ return true;
384
+
385
+ } catch (NumberFormatException e) {
386
+
387
+ return false;
388
+
389
+ }
390
+
391
+ }
392
+
393
+
394
+
395
+ private List<String> readFile(String filename){
396
+
397
+ //csvファイル読み込み
398
+
399
+ AssetManager assetManager = context.getResources().getAssets();
400
+
401
+ List<String> list = null;
402
+
403
+
404
+
405
+ try {
406
+
407
+ InputStream inputStream = assetManager.open(filename+".csv");
408
+
409
+ InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
410
+
411
+ BufferedReader br = new BufferedReader(inputStreamReader);
412
+
413
+ String line;
414
+
415
+ list = new ArrayList<String>();
416
+
417
+ line = br.readLine();
418
+
419
+ while ((line = br.readLine()) != null) {
420
+
421
+ list.add(line);
422
+
423
+ }
424
+
425
+ br.close();
426
+
427
+ } catch (IOException e) {
428
+
429
+ e.printStackTrace();
430
+
431
+ }
432
+
433
+ return list;
434
+
435
+ }
436
+
437
+
438
+
439
+ @Override
440
+
441
+ public void onCreate(SQLiteDatabase db) {
442
+
443
+ buildTable(db);
444
+
445
+ }
446
+
447
+
448
+
449
+ @Override
450
+
451
+ public void onUpgrade(SQLiteDatabase db, int old_v, int new_v) {
452
+
453
+ db.execSQL("DROP TABLE IF EXISTS words");
454
+
455
+ onCreate(db);
456
+
457
+ }
458
+
459
+ }
460
+
461
+
462
+
463
+ ```
464
+
465
+
466
+
145
467
 
146
468
 
147
469
  ### 試したこと

1

2018/09/22 07:28

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
File without changes