XML과 동영상 데이터를 합쳐서 새로운 파일로..?

senah의 이미지

안녕하세요.

문제 상황은 이렇습니다. 먼저, XML 데이터가 있고, 여기에 맞는 동영상 데이터가 있는데.. 이 둘을 합쳐서 새로운 파일로 하고 싶습니다. 그런데, 이미 만들어둔 함수들은 해당 파일들을 로드할 때 파일 이름이 필요합니다.

Tmp 디렉토리 같은 곳에 파일을 생성하지 않고 하나로 합쳐진 파일에서 읽어들일 수 있는 방법은 없을까요? 또, 파일을 하나로 합치려면 어떻게 해야하는지.. XML 데이터를 읽어들여서 크기를 알아내고, 새로운 파일의 헤더 따위에서 XML 데이터가 어디까지 가는지 크기를 정의하고, XML 데이터를 쓴 다음 동영상 데이터를 다음부터 저장해야 하나요?

keizie의 이미지

.jar도 .odf도 내부는 zip 압축이라서 그냥 풀어보면 풀리지요. rpm도 cpio라는 걸로 그냥 풀어버릴 수 있고.
굳이 새로 형식을 만드시는 것보다는 (동영상이니까 압축률 없이) tar 식으로 묶는 정도면 괜찮지 않을까 합니다.

senah의 이미지

음, 제가 자세히 설명하지 않았네요.

제가 만든 프로그램에서 XML 문서와 동영상 데이터를 필요로 합니다. 이때까지는 XML과 동영상 데이터를 따로 따로 읽어들여서 데이터를 출력했지만, 지금은 파일 하나로 처리하도록 요구 사항이 바뀌었습니다. 바깥에서 알아보기 힘들도록 말이죠. (후..) 그리고, 프로그램 내부의 코드들은 이미 입력 인자로 각각의 파일 이름을 요구하는데.. Tmp와 같은 디렉토리에 프로그램 수행 도중에 파일을 따로 만들지 않고 합친 파일에서 읽어들일 수 있는 방법이 있나요?

keizie의 이미지

파일 이름은 그냥 예전과 같이 주되 그 파일 안에서 동영상 읽는 함수는 동영상 부분 읽고, XML 읽는 함수는 XML 부분 읽도록 해야 되지 않을까요?

근데 외부에서 알아볼 수 없는 형식이라면 .... 그냥 zip으로 하고 헤더만 zip 말고 jib 식으로; 바꾸면 어떨까요?

blueiur의 이미지

파일 헤더에 원하시는 정보를 기록해 두시고,
헤더 정보를 활용해서 XML부분과 동영상 부분을 분리하시면 될것 같네요.
파일 합치는 방법이야 뭐 별거 있습니까?
그냥 바이너리로 읽어서 하나로 써버리면 됩니다.
나중에 헤더 참조해서 두개로 다시 나누면 되고요.

senah의 이미지

문제는 Tmp 디렉토리 같은 곳에 프로그램 실행 도중에 확인할 수 있는 파일들이 생성된다는 것인데.. 으음..

다른 방법이 없다면 어쩔 수 없이 이렇게 해야겠군요. 쩝.

bushi의 이미지

fopen() 또는 open() 을 후킹해서 seek 계열 함수로 offset 조정을 해버리는 겁니다.

xml 을 읽으려는 건지 영상데이터를 읽으려는 건지의 판단은 적절히 하셔야겠지요.

OTL

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.