1. Java / Говнокод #1688

    +70.9

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    import javax.microedition.lcdui.*;
    import java.lang.*;
    import java.io.*;
    
    public class LNRES
    {
    	public InputStream is=null;
    	public String lines[]=null;
    	
    	LNRES(String name,int size) 
    	{
    		int x=0;
    		is=getClass().getResourceAsStream(name);
    		byte mb[]=new byte[size];
    		try { x=is.read(mb); } catch (Exception ex) { }
    		char mc[]=new char[x];
    		for (int i=0; i<x; i++) mc[i]=(char)mb[i];
    		
    		int n=0,a=0,l=0;
    		String mas2[]=null;
    		for (int i=0; i<mc.length; i++) {
    			if ((mb[i]==13)||(i==mc.length-1)) {
    				mas2=new String[n+1];
    				for (int j=0; j<n; j++) mas2[j]=new String(lines[j]);
    				mas2[n]=new String(mc,a,l+((i==mc.length-1)?1:0)); n++; lines=new String[n];
    				for (int k=0; k<n; k++) lines[k]=new String(mas2[k]);
    				a=i+2; l=0; i++;
    			} else l++;
    		}
    		lines=new String[n];
    		for (int i=0; i<n; i++) lines[i]=new String(mas2[i]);		
    	}	
    }

    Писалось под j2me. Класс считывает весь файл и превращает его в массив строк.

    Запостил: k06a, 26 Августа 2009

    Комментарии (6) RSS

    • Мда. В .NET для этого есть готовый очень удобный метод :)
      string[] lines = File.ReadAllLines(path);
      Ответить
    • пипец - с какой стороны не глянь - код просто ж
      сначала засасывает все а потом только обрабатывает - всеж это одновременно надо делать
      причем код потенциально неработоспособный

      try { x=is.read(mb); } catch (Exception ex) { }
      вот это может и не засосать все на какихнить железках по какимнить причинам и поэтому это как правило лупится

      for (int i=0; i<x; i++) mc[i]=(char)mb[i]; и тут может быть обрубок а невесь файл.

      про незнание что есть StringBuffer (он точно есть в МЕ), System.arrayCopy() и про тупой неуниверсальный алгоритм чтения я вообще молчу

      пипец тому кто будет портировать его поделки
      Ответить
      • Этот класс даже работал какое-то время)))
        Забавно было встретить это чудо)))
        Ответить
    • и про Vector тож видать не слышал
      Ответить

    Добавить комментарий