|
목록에서 글자 제한 23이였음 ?>
질문게시판 - 반드시 검색을 하신 후 원하는 답변을 찾을 수 없을 때, 질문을 올려주세요. |
| Posted by 김길남 | 2007-01-01 14:36:14, Hit : 3160 | |
|
|
|
리스트박스 환경문 만드는건 또 에디트 환경문과와는 다른가봐요,,
이리저리 하다가 다음과 같이 환경문을 만들어 봤습니다.
//멀티리스트창 숨겨질때... 실수:핸들; 핸들:=환경열어(경로추출(실행파일명)+"\bookmark.ini"); 환경문써(핸들,"즐겨찾기","ID",리스트박스0.내용.전체문자); 환경문써(핸들,"즐겨찾기","설명",리스트박스1.내용.전체문자); 환경문써(핸들,"즐겨찾기","기타",리스트박스2.내용.전체문자); 환경닫아(핸들);
//멀티리스트창 생성할때... 실수:핸들,수; 핸들:=환경열어(현재경로+"\bookmark.ini"); 리스트박스0.내용.전체문자?=환경문읽어(핸들,"즐겨찾기","ID",리스트박스0.내용.전체문자); 리스트박스1.내용.전체문자?=환경문읽어(핸들,"즐겨찾기","설명",리스트박스1.내용.전체문자); 리스트박스2.내용.전체문자?=환경문읽어(핸들,"즐겨찾기","기타",리스트박스2.내용.전체문자); 환경닫아(핸들);
|
이렇게 했는데,,, 작성된 bookmark.ini 파일을 열어봤더니 난리가 아니고,, 더군다나 실행되서 보일때는 한줄만 나오네요,,, 또 새로운 내용이 작성될때는 환경문에 내용이 바뀌는게 아니고 계속 추가 되서 작성되네요,, 이리저리 시도 해보다가 저로서는 도저히 ,,,,
또 도움 부탁 드립니다,,
|
|
|
김길남 2007-01-01 PM 2:46:18 |
|
|
|
혹 함수를 별도로 만들어서 이용해야 하면 어찌할까나,, ㅎㅎ |
|
|
김길남 2007-01-01 PM 2:51:21 |
|
|
|
손상진님이 제작하신 멀티리스트박스 잘보면 언젠가는 현제선택된 항목을 수정하는것도 가능 할것같네요,, |
|
|
박종훈 2007-01-01 PM 2:54:09 |
|
|
|
음.. 답변을 잠시 수정해서 다시 올리겠습니다; |
|
|
박종훈 2007-01-01 PM 2:54:40 |
|
|
|
제가 답변 드린것중에.. 굵은색과 빨강색만 봐주세요;
나머지는 거의 쓰레기 내용 -_-; [.......
전체문자로 할경우, 줄바꿈되는 문자로 고대로 나옵니다.
아마 환경파일인 bookmark.ini파일에는,
아래와 같이 어질러저 있을겁니다 -_-;
제가.. 임의로 만들어 본겁니다.
[즐겨찾기]
ID=qnrdkqkrwhdng
qkrwhdgns
qmrd
설명=창조유저그룹
EBS
KBS
기타=설명
창조
방송
이런식으로 어질러져 있었죠? -_-;
줄바꿈문자가 고대로 들어가서 그런겁니다;
아참, 그리고 이거 알아두셔야할것 같습니다.
환경파일을 읽을때.. 한줄만 읽는다는 거!
[그냥 넘어가셔도 상관 없습니다. 오히려 오해를 일으킬수 있습니다 -_-;]
즉, 아래와 같은경우, '뭐야'의 값을 읽는다면.. '창조'만 읽히게 됩니다.
[즉, = 다음에 한줄만 읽는 다는 뜻입니다.]
"오해 없으시기 바랍니다;" [환경파일 전체내용중 한줄만 읽는 다는 것이 아닙니다;']
[바보]
뭐야=창조
유저
그룹
여기부터 진짜 해결방안!
음.. 방법은 여러가지가 있을텐데.. 아래와 같은 방법을 생각해보겠습니다.
1. 반복문으로, 줄 하나하나 읽어서 나만의 줄바꿈부호를 사용하여 사용한다.
2. 반복문으로, 줄 하나하나 읽어서 환경파일에 저장한다.
3. 각 리스트박스별로 내용을 따로저장한다.
1번의 경우에는.. 나만의 줄바꿈부호를 사용하는데요..
이때의 단점이라면, 속도가 다소 느려질수 있으며.. [양이 많은경우..]
또한 사용자가 나만의 줄바꿈부호를 사용하였을 경우에는 다른 값이 나올수가 있습니다.
2번의 경우, 환경파일에 줄 하나하나 읽어서 저장하는 겁니다.
첫번째 줄은 무슨 값, 두번째 줄은 무슨값, 세번째 줄은 무슨 값..
이렇게 해서.. 사용하는 건데요. 조금 까다롭고; 역시 양이 많은경우 속도가;;
3번의 경우, 파일이 여러개 생길수 있지만.. 가장 편리하고 빠르다는 거죠 ㅋㅋ
음.. 내용이 길어졌군요. 제가 추천하는 방법은 3번인데요. 다시 한번 정리하겠습니다.
환경파일에 저장하시지마시고, 각 리스트박스의 내용을 따로 저장하는거에요.
단, 리스트박스의 개수에 따라 파일의 개수가 늘어나지만요;
//멀티리스트창 숨겨질때...
리스트박스0.내용.파일저장해(경로추출(실행파일명) + "\bookmark_ID.txt");
리스트박스1.내용.파일저장해(경로추출(실행파일명) + "\bookmark_Info.txt");
리스트박스0.내용.파일저장해(경로추출(실행파일명) + "\bookmark_Etc.txt");
//멀티리스트창 생성할때...
리스트박스0.내용.파일읽어(경로추출(실행파일명) + "\bookmark_ID.txt");
리스트박스1.내용.파일읽어(경로추출(실행파일명) + "\bookmark_Info.txt");
리스트박스0.내용.파일읽어(경로추출(실행파일명) + "\bookmark_Etc.txt");
저는 이 방법이 가장 쉬워서 선택했으며, 또한 양이 많아져도 속도는 보장됩니다. ㅋㅋ
하지만 단점이 조금 있어서; |
|
|
박종훈 2007-01-01 PM 2:57:52 |
|
|
|
다시 정리하겠습니다;
각 리스트박스별로 리스트박스의 내용을 따로 저장합니다.
왜냐하면, 가장 편리하고 빠른 방법이기 때문입니다.
//멀티리스트창 숨겨질때...
리스트박스0.내용.파일저장해(경로추출(실행파일명) + "\bookmark_ID.txt");
리스트박스1.내용.파일저장해(경로추출(실행파일명) + "\bookmark_Info.txt");
리스트박스0.내용.파일저장해(경로추출(실행파일명) + "\bookmark_Etc.txt");
//멀티리스트창 생성할때...
리스트박스0.내용.파일읽어(경로추출(실행파일명) + "\bookmark_ID.txt");
리스트박스1.내용.파일읽어(경로추출(실행파일명) + "\bookmark_Info.txt");
리스트박스0.내용.파일읽어(경로추출(실행파일명) + "\bookmark_Etc.txt");
창이 숨겨질때에, 리스트박스의 내용을 각각 저장한 다음에..
다음에 창이 다시 생성할때에..
저장한 내용을 다시 읽어서 사용하는 방법입니다. |
|
|
김길남 2007-01-01 PM 2:58:22 |
|
|
|
아이고 ㅎㅎ
늘 황송한 답변 감사 드립니다,
단답형도 힘드실텐데,, 종합적으로 제시해주니 이해도 빠를뿐만 아니라 개념잡는데도 큰 도움 됩니다,, 감사드립니다,, |
|
|
박종훈 2007-01-01 PM 3:05:28 |
|
|
|
아, 하고 할것이 없어서 답변이나 제대로 하자! 라는 생각에;;
제가 방금 답변해 드린 내용이 완벽한 것은 아닙니다;
하지만, 가장 편하고.. 가장 빠른 방법이기에^^;
저의 빠른실행기의 경우에도.. 방금 답변해 드린 방법이 쓰였습니다.
[사실.. 귀찮아서라는 핑계를;;] |
|
|
김길남 2007-01-01 PM 3:06:55 |
|
|
|
네,,, 그럼 제일 처음 실행파일 배포할때 해당 텍스트파일도 함께 배포해야 맨처음 실행할때 에러메세지 않뜨는군요,,, |
|
|
박종훈 2007-01-01 PM 3:24:46 |
|
|
|
아.. 그거에 대한 답변을 또 드리지 않았군요;
파일이 존재하는지 여부를 확인한 후에..파일을 읽어드리도록 하세요~!
'파일존재여부' 라는 함수가 있습니다. |
|
|
정성우 2007-01-01 PM 5:14:52 |
|
|
|
박종훈 님께서 이미 답변하셨는데, 김길남 님께서 처음 소스에서 의도한 것을 올바르게 수정한 내용을 올려드립니다.
요즘 질문하신 내용들이 창조 함수&속성들의 값에 대해 아직 미숙하셔서 그러신 듯합니다... 그래서 ㅎ리스트의 속성에 대해 조금 설명드릴게요.(그러면 후에 리스트 쓰기가 편할 거라고 믿쑵니다 =ㅅ=;;)
'전체문자'는 리스트의 내용 전체를 가져오게 됩니다.
예로 리스트의 1번째 줄에 '첫번째', 2번째 줄에 '두번째'가 있으면 '전체문자'에서는 "첫번째"+[개행문자]+"두번째"가 반환됩니다.
그렇게 되니까 환경파일 내용이 모두 엉망이 되는 거지요. 그럴 때는 '환경문써([핸들],,,ㅎ리스트.내용.부분문자([내용위치]);'와 반복문을 이용해 저장하는 것이 옳을 거에요.
그리고,
ㅎ리스트.내용.전체문자:=환경문읽어();//첫번째 환경문
ㅎ리스트.내용.전체문자:=환경문읽어();//두번째 환경문
ㅎ리스트.내용.전체문자:=환경문읽어();//세번째 환경문
이렇게 되어 있을 때, ㅎ리스트에는 마지막인 세번째 환경문 내용이 들어가 있게 됩니다. 왜냐하면 저런 방법으로는 환경문을 읽을 때마다 ㅎ리스트의 전체 내용을 완전히 바꿔 버리게 되기 때문이죠. 'ㅎ리스트.내용.추가(환경문읽어());' 를 이용하시는게 의도한 바로 작동될 거에요.
설명이 많이 부족하지만, 이런 방법도 있겠구나 하고 생각해 주시면 감사하겠습니다. |
|
|
김길남 2007-01-01 PM 5:46:27 |
|
|
|
네,,,정성우님 감사 합니다,,
방종훈님의 제시한 방법중에 하나 이지요?
걍 뭔가 집히는건 있지만 실제 적용을 해봐야 할텐데
갈길이 멀어 박종훈님이 제시한 3번째것으로 갈까 합니다,^^ |
|
|
지우개 Expert 3.0 제작자 : 천호성 님 [LINK] |
|
|
|
대박로또2005 제작자 : 최재일 님 [LINK] |
|
|
1 | 박종훈 님 | 15292 점 | |
2 | 지상현 님 | 8809 점 | |
3 | 손상진 님 | 7388 점 | |
4 | 권선중 님 | 6060 점 | |
5 | 이진백 님 | 5174 점 | |
|
|
|
가입일 | 닉네임 |
05/31 | 김동률 |
03/31 | 홍형기 |
09/01 | o00pp99oo |
12/27 | 이재민 |
11/20 | 이희철 |
|
|
|
|
. |
. |
. |
|